Menu Close

2.2.5. 컨테이너 이미지 레지스트리 설정 구성

OpenShift Container Platform이 컨테이너 이미지를 가져오는 데 사용하는 레지스트리를 정의하는 설정은 기본적으로 /etc/containers/registries.conf 파일에 보관됩니다. 해당 파일에서 인증이 필요하지 않도록 (비보안) 레지스트리를 설정하거나 미러링된 레지스트리를 가리키거나 정규화되지 않은 컨테이너 이미지 요청을 검색하는 레지스트리를 설정할 수 있습니다.

registries.conf 를 직접 변경하는 대신 구성 파일을 /etc/containers/registries.conf.d 디렉터리에 배치하면 자동으로 시스템의 기존 registries.conf 설정에 추가됩니다.

이 절차에서는 quay .io를 정규화되지 않은 검색 레지스트리(OpenShift Container Platform이 레지스트리 이름을 포함하지 않는 이미지 이름을 가져오려는 경우)로 추가하는 registries. d 파일(/etc/containers/registries/99-worker-unqualified-search-registries.conf)을 생성하는 방법을 설명합니다. 여기에는 다음과 같이 검사할 수 있는 base64로 인코딩된 콘텐츠가 포함되어 있습니다.

$ echo dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K | base64 -d
unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io']

registries.confregistries.d 디렉토리 파일의 형식은 container-registries.conf man 페이지를 참조하십시오.

전제 조건

  • 실행중인 OpenShift Container Platform 클러스터 (버전 4.4 이상)가 있어야합니다.
  • 관리 권한이 있는 사용자로 클러스터에 로그인합니다.

절차

  1. 해당 파일의 인코딩된 base64 콘텐츠를 포함하여 /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf 파일의 콘텐츠를 저장할 YAML 파일(myregistry.yaml)을 만듭니다. 예를 들면 다음과 같습니다.

    $ cat > /tmp/myregistry.yaml <<EOF
    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 99-worker-unqualified-search-registries
    spec:
      config:
        ignition:
          version: 3.1.0
        storage:
          files:
          - contents:
              source: data:text/plain;charset=utf-8;base64,dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K
            filesystem: root
            mode: 0644
            path: /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf
    EOF
  2. 머신 구성을 풀에 적용합니다.

    $ oc apply -f /tmp/myregistry.yaml
  3. 새 머신 구성이 적용되고 노드가 저하된 상태에 있는지 확인합니다. 이 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다. 각 머신에 새 머신 구성이 성공적으로 적용되면 작업자 풀에 진행중인 업데이트가 표시됩니다.

    $ oc get machineconfigpool

    출력 예

    NAME   CONFIG             UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE
    master rendered-master-35 True    False    False    3            3                 3                   0                    34m
    worker rendered-worker-d8 False   True     False    3            1                 1                   0                    34m

  4. 변경 사항이 적용되었는지 확인하려면 작업자 노드에 로그인합니다.

    $ oc get node | grep worker

    출력 예

    ip-10-0-0-1.us-east-2.compute.internal   Ready    worker   39m   v0.0.0-master+$Format:%h$

    $ oc debug node/ip-10-0-0-1.us-east-2.compute.internal

    출력 예

    Starting pod/ip-10-0-141-142us-east-2computeinternal-debug ...
    ...

    sh-4.2# chroot /host
    sh-4.4# cat /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf
    unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io']
    sh-4.4# exit