5장. 레지스트리 공개
기본적으로 OpenShift 이미지 레지스트리는 TLS를 통해 트래픽을 제공하도록 클러스터 설치 중에 보호됩니다. 이전 OpenShift Container Platform 버전과 달리 레지스트리는 설치시 클러스터 외부에 공개되지 않습니다.
5.1. 기본 레지스트리 수동 노출
클러스터 내에서 기본 OpenShift 이미지 레지스트리에 로그인하는 대신 라우팅을 사용하여 외부 액세스 권한을 확보할 수 있습니다. 이 외부 액세스를 사용하면 경로 주소를 사용하여 클러스터 외부에서 레지스트리에 로그인하고 라우팅 호스트를 사용하여 기존 프로젝트에 이미지에 태그를 지정하고 푸시할 수 있습니다.
전제 조건
다음 사전 요구 사항이 자동으로 수행됩니다.
- 레지스트리 Operator를 배포합니다.
- Ingress Operator를 배포합니다.
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
configs.imageregistry.operator.openshift.io
리소스에서 defaultRoute
매개변수를 사용하여 경로를 노출할 수 있습니다.
defaultRoute
를 사용하여 레지스트리를 공개하려면 다음을 수행합니다.
defaultRoute
를true
로 설정합니다.$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
기본 레지스트리 경로를 가져옵니다.
$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
Ingress Operator의 인증서를 가져옵니다.
$ oc get secret -n openshift-ingress router-certs-default -o go-template='{{index .data "tls.crt"}}' | base64 -d | sudo tee /etc/pki/ca-trust/source/anchors/${HOST}.crt > /dev/null
다음 명령을 사용하여 클러스터의 기본 인증서를 활성화하여 경로를 신뢰합니다.
$ sudo update-ca-trust enable
기본 경로를 사용하여 podman으로 로그인합니다.
$ sudo podman login -u kubeadmin -p $(oc whoami -t) $HOST