레지스트리


OpenShift Dedicated 4

OpenShift Dedicated는 소스 코드에서 이미지를 빌드하고 배포하고 라이프사이클을 관리할 수 있습니다.

Red Hat OpenShift Documentation Team

초록

OpenShift Dedicated는 OpenShift Dedicated 환경에 배포하여 이미지를 로컬로 관리할 수 있는 내부 통합 컨테이너 이미지 레지스트리를 제공합니다.

1장. OpenShift 이미지 레지스트리 개요

OpenShift Dedicated는 소스 코드에서 이미지를 빌드하고 배포하고 라이프사이클을 관리할 수 있습니다. OpenShift Dedicated 환경에 배포하여 이미지를 로컬로 관리할 수 있는 내부 통합 컨테이너 이미지 레지스트리를 제공합니다. 이 개요에는 OpenShift Dedicated에서 일반적으로 사용되는 레지스트리의 참조 정보 및 링크가 OpenShift 이미지 레지스트리에 중점을 두고 있습니다.

1.1. OpenShift 이미지 레지스트리의 일반 용어집

이 용어집은 레지스트리 콘텐츠에 사용되는 공통 용어를 정의합니다.

container
소프트웨어와 모든 종속 항목으로 구성된 경량 및 실행 가능한 이미지입니다. 컨테이너는 운영 체제를 가상화하므로 데이터 센터, 퍼블릭 또는 프라이빗 클라우드 또는 로컬 호스트에서 컨테이너를 실행할 수 있습니다.
이미지 리포지터리
이미지 리포지터리는 이미지를 식별하는 관련 컨테이너 이미지 및 태그의 컬렉션입니다.
미러 레지스트리
미러 레지스트리는 OpenShift Dedicated 이미지의 미러를 보유한 레지스트리입니다.
네임스페이스
네임스페이스는 단일 클러스터 내에서 리소스 그룹을 격리합니다.
Pod
Pod는 Kubernetes에서 가장 작은 논리 단위입니다. Pod는 작업자 노드에서 실행할 하나 이상의 컨테이너로 구성됩니다.
프라이빗 레지스트리
레지스트리는 컨테이너 이미지 레지스트리 API를 구현하는 서버입니다. 프라이빗 레지스트리는 사용자가 콘텐츠에 액세스할 수 있도록 인증이 필요한 레지스트리입니다.
퍼블릭 레지스트리
레지스트리는 컨테이너 이미지 레지스트리 API를 구현하는 서버입니다. 퍼블릭 레지스트리는 콘텐츠를 공개적으로 제공하는 레지스트리입니다.
Quay.io
Red Hat에서 제공하고 유지 관리하는 공용 Red Hat Quay Container Registry 인스턴스는 대부분의 컨테이너 이미지와 Operator를 OpenShift Dedicated 클러스터에 제공합니다.
OpenShift 이미지 레지스트리
OpenShift 이미지 레지스트리는 이미지를 관리하기 위해 OpenShift Dedicated에서 제공하는 레지스트리입니다.
레지스트리 인증
개인 이미지 리포지토리에서 이미지를 푸시하고 가져오려면 레지스트리에서 자격 증명을 사용하여 사용자를 인증해야 합니다.
라우트
OpenShift Dedicated 인스턴스 외부의 사용자 및 애플리케이션에서 포드에 대한 네트워크 액세스를 허용하는 서비스를 노출합니다.
축소
복제 수를 줄이기 위해 다음을 수행합니다.
확장
복제 수를 늘리려면 다음을 수행합니다.
서비스
서비스는 Pod 집합에서 실행 중인 애플리케이션을 노출합니다.

1.2. 통합된 OpenShift 이미지 레지스트리

OpenShift Dedicated는 클러스터에서 표준 워크로드로 실행되는 기본 제공 컨테이너 이미지 레지스트리를 제공합니다. 레지스트리는 인프라 Operator에 의해 설정 및 관리됩니다. 사용자가 기존 클러스터 인프라의 상단에서 실행되는 이미지를 관리하여 실제 워크로드를 처리할 수있는 기본 솔루션을 제공합니다. 이 레지스트리는 다른 클러스터 워크로드처럼 확장 또는 축소할 수 있으며 특정 인프라 프로비저닝을 필요로하지 않습니다. 또한 클러스터 사용자 인증 및 권한 부여 시스템에 통합되어 이미지 리소스에 대한 사용자 권한을 정의하여 이미지를 만들고 액세스 권한을 제어할 수 있습니다.

일반적으로 레지스트리는 클러스터에 빌드된 이미지의 게시 대상과 클러스터에서 실행되는 워크로드의 이미지 소스로 사용됩니다. 새 이미지가 레지스트리로 푸시되면 클러스터에 새 이미지에 대한 알림이 전송되고 다른 구성 요소는 업데이트된 이미지에 응답하여 이를 사용할 수 있습니다.

이미지 데이터는 두 위치에 저장됩니다. 실제 이미지 데이터는 클라우드 스토리지 또는 파일 시스템 볼륨과 같은 설정 가능한 스토리지 위치에 저장됩니다. 표준 클러스터 API에서 노출하고 액세스 제어를 수행하는 데 사용되는 이미지 메타데이터는 표준 API 리소스, 특히 이미지 및 이미지 스트림으로 저장됩니다.

1.3. 이미지 자동 정리

기간, 상태 또는 제한 초과로 인해 시스템에서 더 이상 필요하지 않은 OpenShift 이미지 레지스트리의 이미지는 자동으로 정리됩니다. 클러스터 관리자는 사용자 정의 리소스 정리를 구성하거나 일시 중단할 수 있습니다.

사전 요구 사항

  • dedicated-admin 권한이 있는 계정을 사용하여 OpenShift Dedicated 클러스터에 액세스할 수 있습니다.
  • oc CLI를 설치합니다.

프로세스

  • imagepruners.imageregistry.operator.openshift.io/cluster라는 오브젝트에 다음 specstatus 필드가 있는지 확인합니다.
spec:
  schedule: 0 0 * * * 
1

  suspend: false 
2

  keepTagRevisions: 3 
3

  keepYoungerThanDuration: 60m 
4

  keepYoungerThan: 3600000000000 
5

  resources: {} 
6

  affinity: {} 
7

  nodeSelector: {} 
8

  tolerations: [] 
9

  successfulJobsHistoryLimit: 3 
10

  failedJobsHistoryLimit: 3 
11

status:
  observedGeneration: 2 
12

  conditions: 
13

  - type: Available
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Ready
    message: "Periodic image pruner has been created."
  - type: Scheduled
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Scheduled
    message: "Image pruner job has been scheduled."
  - type: Failed
    staus: "False"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Succeeded
    message: "Most recent image pruning job succeeded."
Copy to Clipboard Toggle word wrap
1
schedule: CronJob 형식의 스케줄입니다. 선택적 필드이며 기본값은 매일 자정입니다.
2
suspend: true로 설정하면 정리를 실행 중인 CronJob이 일시 중단됩니다. 선택적 필드이며 기본값은 false입니다. 새 클러스터의 초깃값은 false입니다.
3
keepTagRevisions: 유지할 태그당 리버전 수입니다. 선택적 필드이며 기본값은 3입니다. 초깃값은 3입니다.
4
keepYoungerThanDuration: 이 기간 내의 이미지를 유지합니다. 이 필드는 선택적 필드입니다. 값을 지정하지 않으면 keepYoungerThan 또는 기본값인 60m(60분)이 사용됩니다.
5
keepYoungerThan: 더 이상 사용되지 않습니다. keepYoungerThanDuration과 동일하지만 기간은 나노초 단위의 정수로 지정됩니다. 이 필드는 선택적 필드입니다. keepYoungerThanDuration이 설정되면 이 필드는 무시됩니다.
6
resources: 표준 Pod 리소스 요청 및 제한입니다. 이 필드는 선택적 필드입니다.
7
affinity: 표준 Pod 유사성입니다. 이 필드는 선택적 필드입니다.
8
nodeSelector: 표준 Pod 노드 선택기입니다. 이 필드는 선택적 필드입니다.
9
tolerations: 표준 Pod 허용 오차입니다. 이 필드는 선택적 필드입니다.
10
successfulJobsHistoryLimit: 유지할 성공한 작업의 최대 수입니다. 지표를 보고하려면 >= 1이어야 합니다. 선택적 필드이며 기본값은 3입니다. 초깃값은 3입니다.
11
failedJobsHistoryLimit: 유지할 실패한 작업의 최대 수입니다. 지표를 보고하려면 >= 1이어야 합니다. 선택적 필드이며 기본값은 3입니다. 초깃값은 3입니다.
12
observedGeneration: Operator에서 관찰한 생성입니다.
13
conditions: 다음 유형의 표준 조건 오브젝트입니다.
  • Available: 정리 작업이 생성된 경우 표시됩니다. 이유는 준비 또는 오류일 수 있습니다.
  • Scheduled: 다음 정리 작업이 예정된 경우 표시됩니다. 이유는 스케줄링, 일시 중지 또는 오류일 수 있습니다.
  • failed: 최신 정리 작업이 실패했는지를 나타냅니다.
중요

정리기 관리에 필요한 Image Registry Operator의 동작은 Image Registry Operator의 ClusterOperator 오브젝트에 지정된 managementState와는 별개입니다. Image Registry Operator가 Managed 상태가 아닌 경우에도 이미지 정리기를 정리 사용자 정의 리소스에서 설정 및 관리할 수 있습니다.

그러나 이미지 레지스트리 Operator의 managementState는 배포된 이미지 pruner 작업의 동작을 변경합니다.

  • Managed: 이미지 pruner의 --prune-registry 플래그가 true로 설정됩니다.
  • Removed: 이미지 pruner의 --prune-registry 플래그가 false 로 설정되어 있습니다. 즉 etcd에서 이미지 메타데이터만 정리됩니다.

1.4. 타사 레지스트리

OpenShift Dedicated는 타사 레지스트리의 이미지를 사용하여 컨테이너를 생성할 수 있지만 이러한 레지스트리는 통합된 OpenShift 이미지 레지스트리와 동일한 이미지 알림 지원을 제공하지는 않습니다. 이 경우 OpenShift Dedicated는 이미지 스트림 생성 시 원격 레지스트리에서 태그를 가져옵니다. 가져온 태그를 새로 고치려면 oc import-image <stream>을 실행합니다. 새 이미지가 감지되면 이전 빌드 및 배포가 다시 생성됩니다.

1.4.1. 인증

OpenShift Dedicated는 레지스트리와 통신하여 사용자가 제공한 인증 정보를 사용하여 개인 이미지 리포지토리에 액세스할 수 있습니다. 이를 통해 OpenShift Dedicated에서 프라이빗 리포지토리로 이미지를 푸시하고 가져올 수 있습니다.

1.4.1.1. Podman을 사용한 레지스트리 인증

일부 컨테이너 이미지 레지스트리에는 액세스 권한이 필요합니다. Podman은 컨테이너 및 컨테이너 이미지를 관리하고 이미지 레지스트리와 상호 작용하기 위한 오픈 소스 툴입니다. Podman을 사용하여 인증 정보를 인증하고 레지스트리 이미지를 가져온 후 로컬 이미지를 로컬 파일 시스템에 저장할 수 있습니다. 다음은 Podman으로 레지스트리를 인증하는 일반적인 예입니다.

프로세스

  1. Red Hat Ecosystem Catalog 를 사용하여 Red Hat Repository에서 특정 컨테이너 이미지를 검색하고 필요한 이미지를 선택합니다.
  2. Get this image 를 클릭하여 컨테이너 이미지에 대한 명령을 찾습니다.
  3. 다음 명령을 실행하여 로그인하고 사용자 이름과 암호를 입력하여 인증합니다.

    $ podman login registry.redhat.io
     Username:<your_registry_account_username>
     Password:<your_registry_account_password>
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 이미지를 다운로드하여 로컬에 저장합니다.

    $ podman pull registry.redhat.io/<repository_name>
    Copy to Clipboard Toggle word wrap

1.5. Red Hat Quay 레지스트리

엔터프라이즈급 컨테이너 이미지 레지스트리가 필요한 경우 Red Hat Quay는 호스팅 서비스와 자체 데이터 센터 또는 클라우드 환경에 설치할 수 있는 소프트웨어로 사용할 수 있습니다. Red Hat Quay의 고급 기능에는 지역 복제, 이미지 스캔 및 이미지를 롤백하는 기능이 포함되어 있습니다.

Quay.io 사이트를 방문하여 호스팅된 Quay 레지스트리 계정을 설정합니다. 그 후 Quay 튜토리얼에 따라 Quay 레지스트리에 로그인하고 이미지 관리를 시작합니다.

원격 컨테이너 이미지 레지스트리와 마찬가지로 OpenShift Dedicated에서 Red Hat Quay 레지스트리에 액세스할 수 있습니다.

1.6. 인증이 활성화된 Red Hat 레지스트리

Red Hat Ecosystem Catalog의 Container 이미지 섹션을 통해 제공되는 모든 컨테이너 이미지는 이미지 레지스트리의 registry.redhat.io.에 호스트됩니다.

레지스트리 registry.redhat.io 에서는 OpenShift Dedicated의 이미지 및 호스팅 콘텐츠에 액세스하기 위해 인증이 필요합니다. 새 레지스트리로 마이그레이션한 후 기존 레지스트리를 일정 기간 동안 사용할 수 있습니다.

참고

OpenShift Dedicated는 registry.redhat.io 에서 이미지를 가져오므로 이를 사용하도록 클러스터를 구성해야 합니다.

새 레지스트리는 다음과 같은 방법으로 인증에 표준 OAuth 메커니즘을 사용합니다.

  • 인증 토큰: 관리자에 의해 생성되는 토큰으로 이는 시스템에 컨테이너 이미지 레지스트리에 대한 인증 기능을 제공하는 서비스 계정입니다. 서비스 계정은 사용자 계정 변경의 영향을 받지 않으므로 인증에 토큰을 사용하는 것은 안정적이고 유연한 인증 방법입니다. 이는 프로덕션 클러스터에 대해 지원되는 유일한 인증 옵션입니다.
  • 웹 사용자 이름 및 암호: 이는 access.redhat.com과 같은 리소스에 로그인하는 데 사용하는 표준 인증 정보 집합입니다. OpenShift Dedicated에서 이 인증 방법을 사용할 수 있지만 프로덕션 배포에서는 지원되지 않습니다. 이 인증 방법을 OpenShift Dedicated 외부의 독립형 프로젝트로 제한합니다.

사용자 이름 및 암호 또는 인증 토큰 중 하나의 인증 정보를 사용하여 podman login을 사용하고 새 레지스트리의 콘텐츠에 액세스합니다.

모든 이미지 스트림은 설치 풀 시크릿을 사용하여 인증하는 새 레지스트리를 가리킵니다.

다음 위치 중 하나에 인증 정보를 배치해야합니다.

  • openshift 네임 스페이스. 이미지 스트림을 openshift 네임스페이스로 가져올 수 있으려면 자격 증명이 openshift 네임스페이스에 있어야 합니다.
  • 호스트: Kubernetes에서 이미지를 가져올 때 호스트의 인증 정보를 사용하므로 호스트에 인증 정보가 있어야합니다.

2장. OpenShift Dedicated의 이미지 레지스트리 Operator

2.1. OpenShift Dedicated의 이미지 레지스트리

Image Registry Operator는 OpenShift 이미지 레지스트리의 단일 인스턴스를 설치하고 레지스트리 스토리지 설정을 포함하여 모든 레지스트리 구성을 관리합니다.

컨트롤 플레인이 관리 클러스터에 배포된 후 Operator는 클러스터에서 탐지된 구성을 기반으로 기본 configs.imageregistry.operator.openshift.io 리소스 인스턴스를 생성합니다.

전체 configs.imageregistry.operator.openshift.io 리소스를 정의하는 데 사용할 수 있는 정보가 충분하지 않으면 불완전한 리소스가 정의되고 Operator는 누락된 항목에 대한 정보로 리소스 상태를 업데이트합니다.

3장. 레지스트리 액세스

OpenShift Dedicated에서 Red Hat 사이트 안정성 엔지니어링 (SRE)은 레지스트리를 관리합니다. 그러나 레지스트리 Pod의 상태를 확인하고 레지스트리 로그를 볼 수 있습니다.

3.1. 레지스트리 pod 상태 확인

dedicated-admin 역할의 관리자는 openshift-image-registry 프로젝트에서 실행 중인 이미지 레지스트리 Pod를 나열하고 해당 상태를 확인할 수 있습니다.

사전 요구 사항

  • dedicated-admin 역할의 사용자로 클러스터에 액세스할 수 있습니다.

프로세스

  • openshift-image-registry 프로젝트의 pod를 나열하고 상태를 확인합니다.

    $ oc get pods -n openshift-image-registry
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME READY STATUS RESTARTS AGE
    image-registry-79fb4469f6-llrln 1/1 Running 0 77m
    node-ca-hjksc 1/1 Running 0 73m
    node-ca-tftj6 1/1 Running 0 77m
    node-ca-wb6ht 1/1 Running 0 77m
    node-ca-zvt9q 1/1 Running 0 74m
    Copy to Clipboard Toggle word wrap

3.2. 레지스트리 로그보기

oc logs 명령을 사용하여 레지스트리의 로그를 확인할 수 있습니다.

프로세스

  • 배포에서 oc logs 명령을 사용하여 컨테이너 이미지 레지스트리의 로그를 표시합니다.

    $ oc logs deployments/image-registry -n openshift-image-registry
    Copy to Clipboard Toggle word wrap

    출력 예

    2015-05-01T19:48:36.300593110Z time="2015-05-01T19:48:36Z" level=info msg="version=v2.0.0+unknown"
    2015-05-01T19:48:36.303294724Z time="2015-05-01T19:48:36Z" level=info msg="redis not configured" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
    2015-05-01T19:48:36.303422845Z time="2015-05-01T19:48:36Z" level=info msg="using inmemory layerinfo cache" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
    2015-05-01T19:48:36.303433991Z time="2015-05-01T19:48:36Z" level=info msg="Using OpenShift Auth handler"
    2015-05-01T19:48:36.303439084Z time="2015-05-01T19:48:36Z" level=info msg="listening on :5000" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
    Copy to Clipboard Toggle word wrap

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat