9.3. 이미지 레지스트리 설정 구성


image.config.openshift.io/cluster 사용자 지정 리소스 (CR)를 편집하여 이미지 레지스트리 설정을 구성할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 image.config.openshift.io/cluster CR을 편집합니다.

    $ oc edit image.config.openshift.io/cluster
    Copy to Clipboard Toggle word wrap

    다음은 image.config.openshift.io/cluster CR의 예입니다.

    apiVersion: config.openshift.io/v1
    kind: Image
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-05-17T13:44:26Z"
      generation: 1
      name: cluster
      resourceVersion: "8302"
      selfLink: /apis/config.openshift.io/v1/images/cluster
      uid: e34555da-78a9-11e9-b92b-06d6c7da38dc
    spec:
      allowedRegistriesForImport:
        - domainName: quay.io
          insecure: false
      additionalTrustedCA:
        name: myconfigmap
      registrySources:
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - image-registry.openshift-image-registry.svc:5000
        - reg1.io/myrepo/myapp:latest
        insecureRegistries:
        - insecure.com
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap
    참고

    allowedRegistries , blockedRegistries 또는 insecureRegistries 매개변수를 사용하면 레지스트리 내에서 개별 저장소를 지정할 수 있습니다. 예: reg1.io/myrepo/myapp:latest.

    보안 위험을 줄이려면 안전하지 않은 외부 레지스트리를 피하세요.

검증

  1. 변경 사항을 확인하려면 다음 명령을 실행하여 노드를 나열하세요.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                         STATUS                     ROLES                  AGE   VERSION
    ip-10-0-137-182.us-east-2.compute.internal   Ready,SchedulingDisabled   worker                 65m   v1.32.3
    ip-10-0-139-120.us-east-2.compute.internal   Ready,SchedulingDisabled   control-plane          74m   v1.32.3
    ip-10-0-176-102.us-east-2.compute.internal   Ready                      control-plane          75m   v1.32.3
    ip-10-0-188-96.us-east-2.compute.internal    Ready                      worker                 65m   v1.32.3
    ip-10-0-200-59.us-east-2.compute.internal    Ready                      worker                 63m   v1.32.3
    ip-10-0-223-123.us-east-2.compute.internal   Ready                      control-plane          73m   v1.32.3
    Copy to Clipboard Toggle word wrap

9.3.1. 허용 목록에 특정 레지스트리 추가

image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 레지스트리 내에서 이미지 풀 및 푸시 작업을 위한 레지스트리 허용 목록이나 개별 저장소를 추가할 수 있습니다.

OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다.

이미지를 풀하거나 푸시할 때 컨테이너 런타임은 image.config.openshift.io/cluster CR에서 registrySources 매개변수 아래에 나열된 레지스트리를 검색합니다. allowedRegistries 매개변수 아래에 레지스트리 목록을 생성한 경우 컨테이너 런타임은 해당 레지스트리만 검색합니다. 허용 목록에 없는 레지스트리는 차단됩니다.

주의

allowedRegistries 매개변수를 정의하면 registry.redhat.io , quay.io 및 기본 OpenShift 이미지 레지스트리를 포함한 모든 레지스트리는 명시적으로 나열되지 않는 한 차단됩니다. 페이로드 이미지에 필요한 모든 레지스트리를 allowedRegistries 목록에 추가해야 합니다. 예를 들어 registry.redhat.io , quay.iointernalRegistryHostname 레지스트리를 나열합니다. 연결이 끊긴 클러스터의 경우 미러 레지스트리도 추가해야 합니다. 그렇지 않으면 포드가 고장날 위험이 있습니다.

프로세스

  • 다음 명령을 실행하여 image.config.openshift.io/cluster 사용자 지정 리소스를 편집합니다.

    $ oc edit image.config.openshift.io/cluster
    Copy to Clipboard Toggle word wrap

    다음은 허용 목록을 포함한 image.config.openshift.io/cluster CR의 예입니다.

    apiVersion: config.openshift.io/v1
    kind: Image
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-05-17T13:44:26Z"
      generation: 1
      name: cluster
      resourceVersion: "8302"
      selfLink: /apis/config.openshift.io/v1/images/cluster
      uid: e34555da-78a9-11e9-b92b-06d6c7da38dc
    spec:
      registrySources:
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - reg1.io/myrepo/myapp:latest
        - image-registry.openshift-image-registry.svc:5000
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap
    1. 구성을 업데이트한 후 다음 명령을 실행하여 노드를 나열합니다.

      $ oc get nodes
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME               STATUS   ROLES                  AGE   VERSION
      <node_name>        Ready    control-plane,master   37m   v1.27.8+4fab27b
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 노드에서 디버그 모드로 들어갑니다.

      $ oc debug node/<node_name>
      Copy to Clipboard Toggle word wrap

      <node_name>을 노드 이름으로 바꾸세요.

    3. 메시지가 표시되면 터미널에 chroot /host를 입력하세요.

      sh-4.4# chroot /host
      Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 레지스트리가 정책 파일에 있는지 확인하세요.

    sh-5.1# cat /etc/containers/policy.json | jq '.'
    Copy to Clipboard Toggle word wrap

    다음 정책은 example.com , quay.io , registry.redhat.io 레지스트리의 이미지만 이미지 풀 및 푸시에 액세스할 수 있음을 나타냅니다.

    이미지 서명 정책 파일 예

    {
       "default":[
          {
             "type":"reject"
          }
       ],
       "transports":{
          "atomic":{
             "example.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "image-registry.openshift-image-registry.svc:5000":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "insecure.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "quay.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "reg4.io/myrepo/myapp:latest":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "registry.redhat.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          },
          "docker":{
             "example.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "image-registry.openshift-image-registry.svc:5000":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "insecure.com":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "quay.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "reg4.io/myrepo/myapp:latest":[
                {
                   "type":"insecureAcceptAnything"
                }
             ],
             "registry.redhat.io":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          },
          "docker-daemon":{
             "":[
                {
                   "type":"insecureAcceptAnything"
                }
             ]
          }
       }
    }
    Copy to Clipboard Toggle word wrap

    참고

    클러스터에서 registrySources.insecureRegistries 매개변수를 사용하는 경우 비보안 레지스트리가 허용 목록에 포함되어 있는지 확인합니다.

    예를 들면 다음과 같습니다.

    spec:
      registrySources:
        insecureRegistries:
        - insecure.com
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - insecure.com
        - image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

9.3.2. 특정 레지스트리 차단

image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 레지스트리 내의 모든 레지스트리 또는 개별 저장소를 차단할 수 있습니다.

OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다.

이미지를 풀하거나 푸시할 때 컨테이너 런타임은 image.config.openshift.io/cluster CR에서 registrySources 매개변수 아래에 나열된 레지스트리를 검색합니다. blockedRegistries 매개변수 아래에 레지스트리 목록을 생성한 경우 컨테이너 런타임에서 해당 레지스트리를 검색하지 않습니다. 다른 모든 레지스트리는 허용됩니다.

주의

포드 실패를 방지하려면 registry.redhat.ioquay.io 레지스트리를 blockedRegistries 목록에 추가하지 마세요. 사용자 환경 내의 페이로드 이미지는 이러한 레지스트리에 액세스해야 합니다.

프로세스

  • 다음 명령을 실행하여 image.config.openshift.io/cluster 사용자 지정 리소스를 편집합니다.

    $ oc edit image.config.openshift.io/cluster
    Copy to Clipboard Toggle word wrap

    다음은 차단 목록이 포함된 image.config.openshift.io/cluster 리소스의 예입니다.

    apiVersion: config.openshift.io/v1
    kind: Image
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-05-17T13:44:26Z"
      generation: 1
      name: cluster
      resourceVersion: "8302"
      selfLink: /apis/config.openshift.io/v1/images/cluster
      uid: e34555da-78a9-11e9-b92b-06d6c7da38dc
    spec:
      registrySources:
        blockedRegistries:
        - untrusted.com
        - reg1.io/myrepo/myapp:latest
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

    blockedRegistriesallowedRegistries 매개변수를 동시에 설정할 수는 없습니다. 둘 중 하나를 선택해야 합니다.

    1. 다음 명령을 실행하여 노드 목록을 가져옵니다.

      $ oc get nodes
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                STATUS   ROLES                  AGE   VERSION
      <node_name>         Ready    control-plane,master   37m   v1.27.8+4fab27b
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 노드에서 디버그 모드를 시작합니다.

      $ oc debug node/<node_name>
      Copy to Clipboard Toggle word wrap

      <node_name>을 세부 정보를 알고 싶은 노드의 이름으로 바꾸세요.

    3. 메시지가 표시되면 터미널에 chroot /host를 입력하세요.

      sh-4.4# chroot /host
      Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 레지스트리가 정책 파일에 있는지 확인하세요.

    sh-5.1# cat etc/containers/registries.conf
    Copy to Clipboard Toggle word wrap

    다음 예는 untrusted.com 레지스트리의 이미지가 이미지 풀링 및 푸시에서 차단되었음을 나타냅니다.

    출력 예

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "untrusted.com"
      blocked = true
    Copy to Clipboard Toggle word wrap

9.3.3. 페이로드 레지스트리 차단

미러링 구성에서는 ImageContentSourcePolicy (ICSP) 객체를 사용하여 연결이 끊긴 환경에서 업스트림 페이로드 레지스트리를 차단할 수 있습니다. 다음 예제 절차에서는 quay.io/openshift- payload 페이로드 레지스트리를 차단하는 방법을 보여줍니다.

프로세스

  1. ICSP( ImageContentSourcePolicy ) 오브젝트를 사용하여 미러 구성을 생성하여 인스턴스의 레지스트리에 페이로드를 미러링합니다. 다음 예제 ICSP 파일은 internal-mirror.io/openshift-payload 를 미러링합니다.

    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: my-icsp
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - internal-mirror.io/openshift-payload
        source: quay.io/openshift-payload
    Copy to Clipboard Toggle word wrap
  2. 개체가 노드에 배포된 후 /etc/containers/registries.conf 사용자 정의 리소스(CR)를 확인하여 미러 구성이 설정되었는지 확인합니다.

    출력 예

    [[registry]]
      prefix = ""
      location = "quay.io/openshift-payload"
      mirror-by-digest-only = true
    
    [[registry.mirror]]
      location = "internal-mirror.io/openshift-payload"
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 사용하여 image.config.openshift.io CR을 편집합니다.

    $ oc edit image.config.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  4. 페이로드 레지스트리를 차단하려면 image.config.openshift.io CR에 다음 구성을 추가하세요.

    spec:
      registrySources:
        blockedRegistries:
         - quay.io/openshift-payload
    Copy to Clipboard Toggle word wrap

검증

  • 노드에서 /etc/containers/registries.conf 파일을 확인하여 업스트림 페이로드 레지스트리가 차단되었는지 확인합니다.

    /etc/containers/registries.conf 파일 예시

    [[registry]]
      prefix = ""
      location = "quay.io/openshift-payload"
      blocked = true
      mirror-by-digest-only = true
    
    [[registry.mirror]]
      location = "internal-mirror.io/openshift-payload"
    Copy to Clipboard Toggle word wrap

9.3.4. 안전하지 않은 레지스트리 허용

image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 레지스트리 내에 안전하지 않은 레지스트리나 개별 저장소를 추가할 수 있습니다.

OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다. 유효한 SSL 인증서를 사용하지 않거나 HTTPS 연결이 필요하지 않은 레지스트리는 안전하지 않은 레지스트리로 간주됩니다.

중요

보안 위험을 줄이려면 안전하지 않은 외부 레지스트리를 피하세요.

+ :leveloffset: +1

주의

allowedRegistries 매개변수를 정의하면 registry.redhat.io , quay.io 및 기본 OpenShift 이미지 레지스트리를 포함한 모든 레지스트리는 명시적으로 나열되지 않는 한 차단됩니다. 페이로드 이미지에 필요한 모든 레지스트리를 allowedRegistries 목록에 추가해야 합니다. 예를 들어 registry.redhat.io , quay.iointernalRegistryHostname 레지스트리를 나열합니다. 연결이 끊긴 클러스터의 경우 미러 레지스트리도 추가해야 합니다. 그렇지 않으면 포드가 고장날 위험이 있습니다.

프로세스

  • 다음 명령을 실행하여 image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집합니다.

    $ oc edit image.config.openshift.io/cluster
    Copy to Clipboard Toggle word wrap

    다음은 안전하지 않은 레지스트리 목록이있는 image.config.openshift.io/cluster CR의 예입니다.

    apiVersion: config.openshift.io/v1
    kind: Image
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-05-17T13:44:26Z"
      generation: 1
      name: cluster
      resourceVersion: "8302"
      selfLink: /apis/config.openshift.io/v1/images/cluster
      uid: e34555da-78a9-11e9-b92b-06d6c7da38dc
    spec:
      registrySources:
        insecureRegistries:
        - insecure.com
        - reg4.io/myrepo/myapp:latest
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - insecure.com
        - reg4.io/myrepo/myapp:latest
        - image-registry.openshift-image-registry.svc:5000
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 노드에서 실행하여 레지스트리가 정책 파일에 추가되었는지 확인하세요.

    $ cat /etc/containers/registries.conf
    Copy to Clipboard Toggle word wrap

    다음 예는 insecure.com 레지스트리의 이미지가 안전하지 않으며 이미지 풀링과 푸시가 허용된다는 것을 보여줍니다.

    출력 예

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "insecure.com"
      insecure = true
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat