7.3.7. 외부 레지스트리에서 이미지 가져오기
애플리케이션 개발자는 oc import-image
명령을 사용하여 imagestreams
를 생성하도록 이미지를 가져올 수 있으며, 외부 레지스트리에서 이미지 가져오기를 허용하거나 거부하도록 OpenShift Container Platform을 구성할 수 있습니다.
프로시저
사용자가 이미지를 가져올 수 있는 허용된 레지스트리를 구성하려면
/etc/origin/master/master-config.yaml
파일에 다음을 추가하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 인증된 외부 레지스트리에서 이미지를 가져오려면 원하는 프로젝트 내에 보안을 생성하십시오.
권장되는 방법은 아니지만, 인증된 외부 레지스트리가 비보안이거나 인증서를 신뢰할 수 없는 경우
--insecure = true
옵션과 함께oc import-image
명령을 사용할 수 있습니다.인증된 외부 레지스트리가 보안 레지스트리인 경우 다음과 같이 레지스트리 가져오기 컨트롤러를 실행할 때 마스터 호스트에서 레지스트리 인증서를 신뢰해야 합니다.
/etc/pki/ca-trust/source/anchors/
의 인증서를 복사하십시오.sudo cp <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/<my.registry.example.com.crt>
$ sudo cp <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/<my.registry.example.com.crt>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow update-ca-trust
명령을 실행하십시오.sudo update-ca-trust
$ sudo update-ca-trust
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 마스터 호스트에서 마스터 서비스를 다시 시작하십시오.
sudo master-restart api sudo master-restart controllers
$ sudo master-restart api $ sudo master-restart controllers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 외부 레지스트리의 인증서는 OpenShift Container Platform 레지스트리에서 신뢰할 수 있어야 합니다.
for i in pem openssl java; do oc create configmap ca-trust-extracted-${i} --from-file /etc/pki/ca-trust/extracted/${i} oc set volume dc/docker-registry --add -m /etc/pki/ca-trust/extracted/${i} --configmap-name=ca-trust-extracted-${i} --name ca-trust-extracted-${i} done
$ for i in pem openssl java; do oc create configmap ca-trust-extracted-${i} --from-file /etc/pki/ca-trust/extracted/${i} oc set volume dc/docker-registry --add -m /etc/pki/ca-trust/extracted/${i} --configmap-name=ca-trust-extracted-${i} --name ca-trust-extracted-${i} done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의현재 레지스트리 포드에 인증서를 추가하는 공식 프로시저는 없지만, 위의 임시 해결 방법을 사용할 수 있습니다.
이 임시 해결 방법을 수행하면 해당 명령을 실행하는 시스템의 신뢰할 수 있는 모든 인증서로
configmaps
를 생성하므로, 필요한 인증서만 신뢰할 수 있는 안전한 시스템에서 실행하는 것이 좋습니다.또는 다음과 같이
Dockerfile
로 이미지를 다시 작성하고 올바른 인증서를 신뢰하도록 레지스트리 이미지를 수정하십시오.FROM registry.redhat.io/openshift3/ose-docker-registry:v3.6 ADD <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/ USER 0 RUN update-ca-trust extract USER 1001
FROM registry.redhat.io/openshift3/ose-docker-registry:v3.6 ADD <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/ USER 0 RUN update-ca-trust extract USER 1001
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 다시 빌드하고
docker
레지스트리에 푸시한 다음,deploymentconfig
레지스트리에서 해당 이미지를spec.template.spec.containers["name":"registry"].image
로 사용하십시오.oc patch dc docker-registry -p '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"*myregistry.example.com/openshift3/ose-docker-registry:latest*"}]}}}}'
$ oc patch dc docker-registry -p '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"*myregistry.example.com/openshift3/ose-docker-registry:latest*"}]}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
설치 시 imagePolicyConfig
구성을 추가하려면 openshift_master_image_policy_config
변수를 다음과 같이 모든 imagePolicyConfig
구성을 포함하는 json
형식 문자열과 함께 사용할 수 있습니다.
openshift_master_image_policy_config={"imagePolicyConfig":{"allowedRegistriesForImport":[{"domainName":"docker.io"},{"domainName":"\*.docker.io"},{"domainName":"*.redhat.com"},{"domainName":"*my.registry.example.com*"}]}}
openshift_master_image_policy_config={"imagePolicyConfig":{"allowedRegistriesForImport":[{"domainName":"docker.io"},{"domainName":"\*.docker.io"},{"domainName":"*.redhat.com"},{"domainName":"*my.registry.example.com*"}]}}
ImagePolicy
에 대한 자세한 정보는 ImagePolicy
승인 플러그인 섹션을 참조하십시오.