9.4. 이미지 단축 이름을 허용하는 레지스트리 추가 정보
이미지 단축 이름을 사용하면 pull spec 매개변수에 정규화된 도메인 이름을 포함하지 않고도 이미지를 검색할 수 있습니다.
예를 들어 registry.access.redhat.com/rhe7/etcd 대신 rhel7/etcd를 사용할 수 있습니다. image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 이미지의 단축 이름을 검색하기 위해 레지스트리를 추가할 수 있습니다.
전체 경로를 사용하지 않는 경우 단축 이름을 사용할 수 있습니다. 예를 들어 클러스터가 DNS가 자주 변경된 여러 내부 레지스트리를 참조하는 경우 각 변경 사항에 따라 가져오기 사양에서 정규화된 도메인 이름을 업데이트해야 합니다. 이 경우 이미지 단축 이름을 사용하는 것이 유용할 수 있습니다.
이미지를 풀하거나 푸시할 때 컨테이너 런타임은 image.config.openshift.io/cluster CR에서 registrySources 매개변수 아래에 나열된 레지스트리를 검색합니다. containerRuntimeSearchRegistries 매개변수 아래에 레지스트리 목록을 생성한 경우, 단축 이름으로 이미지를 가져오면 컨테이너 런타임에서 해당 레지스트리를 검색합니다.
9.4.1. 이미지의 짧은 이름을 사용하지 않는 경우 링크 복사링크가 클립보드에 복사되었습니다!
공용 레지스트리에 인증이 필요한 경우 이미지가 배포되지 않을 수 있으므로 공용 레지스트리에서 이미지 단축 이름을 사용하는 것이 좋습니다. 공용 레지스트리와 함께 정규화된 이미지 이름을 사용합니다.
Red Hat 내부 또는 개인 레지스트리는 일반적으로 이미지의 단축 이름을 사용할 수 있습니다.
각 공개 레지스트리에 다른 인증 정보가 필요하고 클러스터에 글로벌 풀 시크릿의 공개 레지스트리가 나열되지 않는 경우 containerRuntimeSearchRegistries 매개변수 아래에 여러 개의 공용 레지스트리를 나열할 수 없습니다.
인증이 필요한 퍼블릭 레지스트리의 경우 레지스트리에 글로벌 풀 시크릿에 저장된 인증 정보가 있는 경우에만 이미지의 단축 이름을 사용할 수 있습니다.
containerRuntimeSearchRegistries 매개변수( registry.redhat.io,docker.io 및 quay.io 레지스트리 포함) 아래에 공용 레지스트리를 나열하는 경우 목록의 모든 레지스트리에 인증 정보를 노출하고 네트워크 및 레지스트리 공격이 발생할 위험이 있습니다. 글로벌 풀 시크릿에 정의된 대로 이미지를 가져오기 위해 하나의 풀 시크릿만 있을 수 있으므로 해당 시크릿은 해당 목록의 모든 레지스트리에 대해 인증하는 데 사용됩니다. 따라서 목록에 공용 레지스트리를 포함하는 경우 보안 위험이 발생합니다.
9.4.2. 이미지의 단축 이름을 허용하는 레지스트리 추가 링크 복사링크가 클립보드에 복사되었습니다!
image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 이미지의 단축 이름을 검색하기 위해 레지스트리를 추가할 수 있습니다. OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다.
allowedRegistries 매개변수를 정의할 때 명시적으로 나열되지 않은 경우 registry.redhat.io,quay.io 및 기본 OpenShift 이미지 레지스트리를 포함한 모든 레지스트리가 차단됩니다. 페이로드 이미지에 필요한 모든 레지스트리를 allowedRegistries 목록에 추가해야 합니다. 예를 들어 registry.redhat.io,quay.io 및 internalRegistryHostname 레지스트리를 나열합니다. 연결이 끊긴 클러스터의 경우 미러 레지스트리도 추가해야 합니다. 그러지 않으면 Pod 오류가 발생할 위험이 있습니다.
프로세스
다음과 같이
project.config.openshift.io/cluster사용자 정의 리소스를 편집합니다.oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음은
image.config.openshift.io/clusterCR의 예입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 노드 목록을 가져옵니다.
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27b
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 노드에서 디버그 모드로 전환합니다.
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면
chroot /host를 터미널에 입력합니다.chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 레지스트리가 정책 파일에 추가되었는지 확인합니다.
cat /etc/containers/registries.conf.d/01-image-searchRegistries.conf
sh-5.1# cat /etc/containers/registries.conf.d/01-image-searchRegistries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']
unqualified-search-registries = ['reg1.io', 'reg2.io', 'reg3.io']Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4.3. 이미지 레지스트리 액세스를 위한 추가 신뢰 저장소 구성 링크 복사링크가 클립보드에 복사되었습니다!
image.config.openshift.io/cluster 사용자 정의 리소스(CR)에 대한 이미지 레지스트리 액세스 중에 신뢰할 추가 CA(인증 기관)가 있는 구성 맵에 대한 참조를 추가할 수 있습니다.
사전 요구 사항
- CA(인증 기관)는 PEM으로 인코딩되어야 합니다.
프로세스
openshift-config네임스페이스에 구성 맵을 생성한 다음image.config.openshift.ioCR의AdditionalTrustedCA매개변수에 구성 맵 이름을 사용합니다. 이렇게 하면 클러스터가 외부 이미지 레지스트리에 연결할 때 신뢰할 수 있는 CA가 추가됩니다.이미지 레지스트리 CA 구성 맵의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
data:registry.example.com:- 이 CA를 신뢰할 레지스트리의 호스트 이름의 예입니다.
data:registry-with-port.example.com..5000:이 CA를 신뢰할 포트가 있는 레지스트리의 호스트 이름의 예입니다. 레지스트리에
registry-with-port.example.com:5000과 같은 포트가 있는 경우:을..로 교체해야 합니다.PEM 인증서 콘텐츠는 신뢰할 각 추가 레지스트리 CA의 값입니다.
선택 사항: 다음 명령을 실행하여 추가 CA를 구성합니다.
oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config
$ oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc edit image.config.openshift.io cluster
$ oc edit image.config.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec: additionalTrustedCA: name: registry-configspec: additionalTrustedCA: name: registry-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow