Azure Red Hat OpenShift 4에 대한 기본 제공 컨테이너 레지스트리 구성
Azure Red Hat OpenShift는 새 이미지 리포지토리를 요청 시 자동으로 프로비전하는 기능을 추가하는 통합 컨테이너 이미지 레지스트리를 제공합니다. 이 방법으로 사용자가 애플리케이션 빌드에 기본 제공 위치를 제공하여 결과 이미지를 푸시할 수 있습니다.
이 문서에서는 ARO(Azure Red Hat OpenShift) 4 클러스터에 기본 제공 컨테이너 이미지 레지스트리를 구성합니다. 이 문서에서 배울 내용은 다음과 같습니다.
- 레지스트리에 액세스할 수 있는 ID 권한 부여
- 클러스터 내부에서 기본 제공 컨테이너 이미지 레지스트리에 액세스
- 클러스터 외부에서 기본 제공 컨테이너 이미지 레지스트리에 액세스
시작하기 전에
이 문서에서는 기존 ARO 클러스터가 있다고 가정합니다(Azure Red Hat OpenShift 4 클러스터 만들기 참조). Microsoft Entra 통합을 구성하려면 az aro create
에 대한 --pull-secret
인수를 사용하여 클러스터를 만들어야 합니다.
참고 항목
클러스터에 대한 Microsoft Entra 인증 구성은 클러스터 외부에서 내부 레지스트리와 상호 작용하는 가장 쉬운 방법입니다.
클러스터가 있으면 kubeadmin
사용자로 인증하여 클러스터에 연결합니다.
레지스트리에 대한 인증 구성
모든 ID(클러스터 사용자, Microsoft Entra 사용자 또는 ServiceAccount)가 내부 레지스트리에 액세스하려면 클러스터 내부에 권한이 부여되어야 합니다.
kubeadmin
으로 다음 명령을 실행합니다.
# Note: replace "<user>" with the identity you need to access the registry
oc policy add-role-to-user -n openshift-image-registry registry-viewer <user>
oc policy add-role-to-user -n openshift-image-registry registry-editor <user>
참고 항목
클러스터 사용자 및 Microsoft Entra 사용자의 경우 이는 클러스터에 인증하는 데 사용하는 이름과 동일합니다. OpenShift ServiceAccounts의 경우 이름을 system:serviceaccount:<project>:<name>
으로 서식 지정합니다.
레지스트리에 액세스
이제 레지스트리에 대한 인증을 구성했으므로 다음과 상호 작용할 수 있습니다.
클러스터 내에서
클러스터 내부에서 레지스트리에 액세스해야 하는 경우(예: CI/CD 플랫폼을 레지스트리에 이미지를 푸시/끌어오는 Pod로 실행 중인 경우) 클러스터 내의 모든 Pod에서 액세스할 수 있는 정규화된 도메인 이름 image-registry.openshift-image-registry.svc.cluster.local:5000
에서 해당 ClusterIP Service를 통해 레지스트리에 액세스할 수 있습니다.
클러스터 외부에서
워크플로에서 클러스터 외부에서 내부 레지스트리에 액세스해야 하는 경우(예: 개발자의 랩톱, 외부 CI/CD 플랫폼 및/또는 다른 ARO 클러스터에서 이미지를 푸시/끌어오려는 경우) 몇 가지 추가 단계를 수행해야 합니다.
kubeadmin
으로 다음 명령을 실행하여 Route를 통해 클러스터 외부에 기본 제공 레지스트리를 노출합니다.
oc patch config.imageregistry.operator.openshift.io/cluster --patch='{"spec":{"defaultRoute":true}}' --type=merge
oc patch config.imageregistry.operator.openshift.io/cluster --patch='[{"op": "add", "path": "/spec/disableRedirect", "value": true}]' --type=json
그런 다음, 레지스트리의 외부 라우팅 가능한 정규화된 도메인 이름을 찾을 수 있습니다.
kubeadmin
으로 다음을 실행합니다.
oc get route -n openshift-image-registry default-route --template='{{ .spec.host }}'
다음 단계
이제 기본 제공 컨테이너 이미지 레지스트리를 설정했으므로 OpenShift에 애플리케이션을 배포하여 시작할 수 있습니다. Java 애플리케이션의 경우 Azure Red Hat OpenShift 4 클러스터에서 Liberty/WebSphere Liberty 열기를 사용해 Java 애플리케이션 배포를 확인하세요.