7.15.5.2.2. 외부 이미지 레지스트리 구성

VDDK 이미지에 외부 이미지 레지스트리를 사용하는 경우 외부 이미지 레지스트리의 인증 기관을 OpenShift Container Platform 클러스터에 추가할 수 있습니다.

필요한 경우 Docker 자격 증명에서 풀 시크릿을 생성하여 서비스 계정에 추가할 수 있습니다.

클러스터에 인증 기관 추가

다음 절차에 따라 이미지를 내보내고 가져올 때 사용할 클러스터에 인증서 CA(인증 기관)를 추가할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야합니다.
  • 레지스트리의 공용 인증서(일반적으로 /etc/docker/certs.d/ 디렉터리에 있는 hostname/ca.crt 파일)에 액세스할 수 있어야 합니다.

절차

  1. 자체 서명 인증서를 사용하는 레지스트리의 경우 신뢰할 수 있는 인증서가 있는 openshift-config 네임스페이스에 ConfigMap을 생성합니다. 각 CA 파일에 대해 ConfigMap의 키가 hostname[..port] 형식의 레지스트리 호스트 이름인지 확인하십시오.

    $ oc create configmap registry-cas -n openshift-config \
    --from-file=myregistry.corp.com..5000=/etc/docker/certs.d/myregistry.corp.com:5000/ca.crt \
    --from-file=otherregistry.com=/etc/docker/certs.d/otherregistry.com/ca.crt
  2. 클러스터 이미지 구성을 업데이트합니다.

    $ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-cas"}}}' --type=merge
Pod에서 다른 보안 레지스트리의 이미지를 참조하도록 허용

Docker 클라이언트의 .dockercfg $HOME/.docker/config.json 파일은 이전에 보안 또는 비보안 레지스트리에 로그인한 적이 있는 경우 인증 정보를 저장하는 Docker 인증 정보 파일입니다.

OpenShift Container Platform의 내부 레지스트리가 아닌 다른 위치에서 보안 컨테이너 이미지를 가져오려면 Docker 인증 정보에서 풀 시크릿을 생성하여 서비스 계정에 추가해야 합니다.

프로세스

  • 보안 레지스트리의 .dockercfg 파일이 이미 있는 경우 다음을 실행하여 해당 파일에서 시크릿을 생성할 수 있습니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockercfg=<path/to/.dockercfg> \
        --type=kubernetes.io/dockercfg
  • $HOME/.docker/config.json 파일이 있는 경우 다음을 실행합니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
        --type=kubernetes.io/dockerconfigjson
  • 보안 레지스트리의 Docker 인증 정보 파일이 아직 없는 경우 다음을 실행하여 시크릿을 생성할 수 있습니다.

    $ oc create secret docker-registry <pull_secret_name> \
        --docker-server=<registry_server> \
        --docker-username=<user_name> \
        --docker-password=<password> \
        --docker-email=<email>
  • Pod의 이미지 가져오기에 시크릿을 사용하려면 서비스 계정에 이 시크릿을 추가해야 합니다. 이 예제의 서비스 계정 이름은 Pod에서 사용하는 서비스 계정 이름과 일치해야 합니다. default는 기본 서비스 계정입니다.

    $ oc secrets link default <pull_secret_name> --for=pull