5.2. 수동으로 보안 레지스트리 공개
클러스터 내에서 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
podman
으로 로그인합니다.$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
$ podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOST 1
- 1
--tls-verify=false
는 클러스터의 기본 라우팅 인증서를 신뢰할 수없는 경우 필요합니다. Ingress Operator를 사용하여 신뢰할 수있는 사용자 지정 인증서를 기본 인증서로 설정할 수 있습니다.
사용자 지정 라우팅을 사용하여 레지스트리를 공개하려면 다음을 수행합니다.
라우팅의 TLS 키로 보안 시크릿을 만듭니다.
$ oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
이 단계는 선택 사항입니다. 보안 시크릿을 생성하지 않으면 라우팅은 Ingress Operator의 기본 TLS 구성을 사용합니다.
레지스트리 Operator에서 다음을 수행합니다.
$ oc edit configs.imageregistry.operator.openshift.io/cluster
spec: routes: - name: public-routes hostname: myregistry.mycorp.organization secretName: public-route-tls ...
참고레지스트리 라우팅에 대한 사용자 지정 TLS 구성을 제공하는 경우에만
secretName
을 설정합니다.
문제 해결