2.5. Azure에서 프라이빗 스토리지 끝점 구성
OpenShift Container Platform이 프라이빗 Azure 클러스터에 배포될 때 프라이빗 스토리지 계정을 원활하게 구성할 수 있도록 이미지 레지스트리 Operator를 활용하여 Azure에서 프라이빗 엔드포인트를 사용할 수 있습니다. 이를 통해 공용 스토리지 끝점을 노출하지 않고 이미지 레지스트리를 배포할 수 있습니다.
엔드포인트가 Microsoft Azure Red Hat OpenShift 클러스터를 복구할 수 없는 상태가 될 수 있으므로 Microsoft Azure Red Hat OpenShift(ARO)에 프라이빗 스토리지 끝점을 구성하지 마십시오.
다음 두 가지 방법 중 하나로 Azure에서 프라이빗 스토리지 끝점을 사용하도록 이미지 레지스트리 Operator를 구성할 수 있습니다.
- VNet 및 서브넷 이름을 검색하도록 이미지 레지스트리 Operator 구성
- 사용자 제공 Azure Virtual Network(VNet) 및 서브넷 이름 사용
2.5.1. Azure에서 프라이빗 스토리지 끝점을 구성하는 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
Azure에서 프라이빗 스토리지 끝점을 구성할 때 다음 제한 사항이 적용됩니다.
-
프라이빗 스토리지 끝점을 사용하도록 이미지 레지스트리 Operator를 구성하면 스토리지 계정에 대한 공용 네트워크 액세스가 비활성화됩니다. 결과적으로 OpenShift Container Platform 외부의 레지스트리에서 이미지를 가져오는 것은 레지스트리 Operator 구성에서
disableRedirect: true를 설정하여만 작동합니다. 리디렉션이 활성화되면 레지스트리는 스토리지 계정에서 직접 이미지를 가져오도록 클라이언트를 리디렉션합니다. 이는 비활성화된 공용 네트워크 액세스로 인해 더 이상 작동하지 않습니다. 자세한 내용은 "Azure에서 프라이빗 스토리지 끝점을 사용할 때 리디렉션 비활성화"를 참조하십시오. - Image Registry Operator는 이 작업을 실행 취소할 수 없습니다.
2.5.2. Image Registry Operator에서 VNet 및 서브넷 이름을 검색할 수 있도록 하여 Azure에서 프라이빗 스토리지 끝점 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 VNet 및 서브넷 이름을 검색하도록 Image Registry Operator를 구성하여 Azure에 프라이빗 스토리지 끝점을 설정하는 방법을 보여줍니다.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
설치 관리자 프로비저닝 인프라 설치 방법을 사용하여 네트워크가 설정되었습니다.
사용자 지정 네트워크 설정이 있는 사용자는 "사용자 제공 VNet 및 서브넷 이름으로 Azure에서 프라이빗 스토리지 끝점 구성"을 참조하십시오.
프로세스
Image Registry Operator
구성오브젝트를 편집하고networkAccess.type을Internal:로 설정합니다.oc edit configs.imageregistry/cluster
$ oc edit configs.imageregistry/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Operator가 프로비저닝을 완료했는지 확인하려면 다음 명령을 입력합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 경로에서 레지스트리를 노출하고 스토리지 계정을 비공개로 구성하는 경우 클러스터 외부의 가져오기를 계속 사용하려면 리디렉션을 비활성화해야 합니다. 다음 명령을 입력하여 Image Operator 구성에서 리디렉션을 비활성화합니다.
oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고리디렉션이 활성화되면 클러스터 외부에서 이미지를 가져오지 않습니다.
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
oc get imagestream -n openshift
$ oc get imagestream -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...Copy 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명령을 실행합니다. 예를 들면 다음과 같습니다.chroot /host
$ chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 컨테이너 레지스트리에 로그인합니다.
podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 레지스트리에서 이미지를 가져올 수 있는지 확인합니다.
podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 사용자 제공 VNet 및 서브넷 이름을 사용하여 Azure에서 프라이빗 스토리지 끝점 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 공용 네트워크 액세스가 비활성화되고 Azure의 프라이빗 스토리지 끝점 뒤에 노출되는 스토리지 계정을 구성합니다.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
- Azure 환경에 사용되는 VNet 및 서브넷 이름을 알아야 합니다.
- 네트워크가 Azure의 별도의 리소스 그룹에 구성된 경우 해당 이름도 알고 있어야 합니다.
프로세스
Image Registry Operator
구성오브젝트를 편집하고 VNet 및 서브넷 이름을 사용하여 프라이빗 끝점을 구성합니다.oc edit configs.imageregistry/cluster
$ oc edit configs.imageregistry/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Operator가 프로비저닝을 완료했는지 확인하려면 다음 명령을 입력합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고리디렉션이 활성화되면 클러스터 외부에서 이미지를 가져오지 않습니다.
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
oc get imagestream -n openshift
$ oc get imagestream -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...Copy 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명령을 실행합니다. 예를 들면 다음과 같습니다.chroot /host
$ chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 컨테이너 레지스트리에 로그인합니다.
podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 레지스트리에서 이미지를 가져올 수 있는지 확인합니다.
podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.4. 선택 사항: Azure에서 프라이빗 스토리지 끝점을 사용할 때 리디렉션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 이미지 레지스트리를 사용할 때 리디렉션이 활성화됩니다. 리디렉션을 사용하면 레지스트리 Pod의 트래픽을 오브젝트 스토리지로 오프로드하여 가져오기가 빨라집니다. 리디렉션이 활성화되고 스토리지 계정이 개인 경우 클러스터 외부의 사용자는 레지스트리에서 이미지를 가져올 수 없습니다.
경우에 따라 클러스터 외부의 사용자가 레지스트리에서 이미지를 가져올 수 있도록 리디렉션을 비활성화해야 하는 경우도 있습니다.
다음 절차에 따라 리디렉션을 비활성화합니다.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
- 경로를 구성했습니다.
프로세스
이미지 레지스트리 구성에서 리디렉션을 비활성화하려면 다음 명령을 입력합니다.
oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
oc get imagestream -n openshift
$ oc get imagestream -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli default-route-openshift-image-registry.<cluster_dns>/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli default-route-openshift-image-registry.<cluster_dns>/cli latest 8 hours ago ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 컨테이너 레지스트리에 로그인합니다.
podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 레지스트리에서 이미지를 가져올 수 있는지 확인합니다.
podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns> /openshift/tools
$ podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns> /openshift/toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow