9.2.2. 특정 레지스트리 차단


image.config.openshift.io/cluster CR(사용자 정의 리소스)을 편집하여 레지스트리 내의 모든 레지스트리를 차단할 수 있습니다. OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다.

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

주의

Pod 실패를 방지하려면 사용자 환경의 페이로드 이미지에서 필요한 registry.redhat.ioquay.io 레지스트리를 blockedRegistries 목록에 추가하지 마십시오.

프로세스

  • 다음과 같이 project.config.openshift.io/cluster 사용자 정의 리소스를 편집합니다.

    $ oc edit image.config.openshift.io/cluster

    다음은 차단 목록이 포함된 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: 
    1
    
        blockedRegistries: 
    2
    
        - untrusted.com
        - reg1.io/myrepo/myapp:latest
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    1
    빌드 및 pod 이미지에 액세스하는 경우 컨테이너 런타임에서 개별 레지스트리를 처리하는 방법을 결정할 구성이 포함되어 있습니다. 내부 클러스터 레지스트리에 대한 구성은 포함되어 있지 않습니다.
    2
    이미지 가져오기 및 푸시 작업에 사용해서는 안 되는 레지스트리를 지정하고 선택적으로 해당 레지스트리에서 리포지토리를 지정합니다. 다른 모든 레지스트리는 허용됩니다.
    참고

    blockedRegistries 레지스트리 또는 allowedRegistries 레지스트리 중 하나를 설정할 수 있지만 둘 다 설정할 수는 없습니다.

    MCO(Machine Config Operator)는 image.config.openshift.io/cluster 리소스를 통해 레지스트리에 대한 변경 사항을 확인합니다. MCO가 변경사항을 감지하면 노드를 비우고, 변경 사항을 적용한 다음 노드를 분리합니다. 노드가 Ready 상태가 되면 차단된 레지스트리에 대한 변경이 각 노드의 /etc/containers/registries.conf 파일에 표시됩니다. 이 기간 동안 서비스를 사용할 수 없는 상황이 발생할 수 있습니다.

검증

  • 다음 명령을 입력하여 노드 목록을 가져옵니다.

    $ oc get nodes

    출력 예

    NAME                STATUS   ROLES                  AGE   VERSION
    <node_name>         Ready    control-plane,master   37m   v1.27.8+4fab27b
    1. 다음 명령을 실행하여 노드에서 디버그 모드로 전환합니다.

      $ oc debug node/<node_name>
    2. 메시지가 표시되면 chroot /host 를 터미널에 입력합니다.

      sh-4.4# chroot /host
    3. 다음 명령을 입력하여 레지스트리가 정책 파일에 추가되었는지 확인합니다.

      sh-5.1# cat etc/containers/registries.conf

      다음 예에서는 untrusted.com 레지스트리의 이미지가 이미지 풀 및 푸시를 위해 비활성화되어 있음을 나타냅니다.

      출력 예

      unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
      
      [[registry]]
        prefix = ""
        location = "untrusted.com"
        blocked = true

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

미러링 구성에서 ICSP( ImageContentSourcePolicy ) 오브젝트를 사용하여 연결이 끊긴 환경의 업스트림 페이로드 레지스트리를 차단할 수 있습니다. 다음 예제 절차에서는 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
  2. 오브젝트가 노드에 배포된 후 /etc/containers/registries.conf 파일을 확인하여 미러 구성이 설정되었는지 확인합니다.

    출력 예

    [[registry]]
      prefix = ""
      location = "quay.io/openshift-payload"
      mirror-by-digest-only = true
    
    [[registry.mirror]]
      location = "internal-mirror.io/openshift-payload"

  3. 다음 명령을 사용하여 image.config.openshift.io 사용자 정의 리소스 파일을 편집합니다.

    $ oc edit image.config.openshift.io cluster
  4. 페이로드 레지스트리를 차단하려면 image.config.openshift.io 사용자 정의 리소스 파일에 다음 구성을 추가합니다.

    spec:
      registrySources:
        blockedRegistries:
         - quay.io/openshift-payload

검증

  • 노드에서 /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"

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동