5장. 레지스트리 공개
기본적으로 OpenShift Container Platform 레지스트리의 보안은 TLS를 통해 트래픽을 제공하도록 클러스터 설치 중에 보호됩니다. 이전 OpenShift Container Platform 버전과 달리 레지스트리는 설치시 클러스터 외부에 공개되지 않습니다.
5.1. 수동으로 보안 레지스트리 공개
클러스터 내에서 OpenShift Container Platform 레지스트리에 로그인하지 않고 외부에서 레지스트리에 액세스할 수 있도록 레지스트리의 라우팅을 공개합니다. 이를 통해 라우팅 주소를 사용하여 클러스터 외부에서 레지스트리에 로그인하고 라우팅 호스트를 사용하여 기존 프로젝트에 이미지를 태그 지정하거나 푸시할 수 있습니다.
사전 요구 사항
다음 사전 요구 사항이 자동으로 수행됩니다.
- 레지스트리 Operator를 배포합니다.
- Ingress Operator를 배포합니다.
절차
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에서 다음을 수행합니다.
spec: routes: - name: public-routes hostname: myregistry.mycorp.organization secretName: public-route-tls ...
참고레지스트리 라우팅에 대한 사용자 지정 TLS 구성을 제공하는 경우에만
secretName
을 설정합니다.