2.5. Azure에서 개인 스토리지 엔드포인트 구성
Image Registry Operator를 활용하면 Azure에서 개인 엔드포인트를 사용할 수 있으며, 이를 통해 OpenShift Container Platform이 개인 Azure 클러스터에 배포될 때 개인 스토리지 계정을 원활하게 구성할 수 있습니다. 이를 통해 공개 스토리지 엔드포인트를 노출하지 않고도 이미지 레지스트리를 배포할 수 있습니다.
Microsoft Azure Red Hat OpenShift(ARO)에서 개인 스토리지 엔드포인트를 구성하지 마세요. 엔드포인트가 Microsoft Azure Red Hat OpenShift 클러스터를 복구할 수 없는 상태로 만들 수 있습니다.
다음 두 가지 방법 중 하나로 Azure에서 개인 스토리지 엔드포인트를 사용하도록 Image Registry Operator를 구성할 수 있습니다.
- VNet 및 서브넷 이름을 검색하도록 Image Registry Operator를 구성하여
- 사용자가 제공한 Azure Virtual Network(VNet) 및 서브넷 이름 사용
2.5.1. Azure에서 개인 저장소 엔드포인트를 구성하는 데 대한 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
Azure에서 개인 저장소 엔드포인트를 구성하는 경우 다음과 같은 제한 사항이 적용됩니다.
-
Image Registry Operator를 개인 스토리지 엔드포인트를 사용하도록 구성하는 경우 스토리지 계정에 대한 공용 네트워크 액세스가 비활성화됩니다. 따라서 OpenShift Container Platform 외부의 레지스트리에서 이미지를 가져오려면 레지스트리 운영자 구성에서
disableRedirect: true를설정해야 합니다. 리디렉션이 활성화되면 레지스트리는 클라이언트를 리디렉션하여 스토리지 계정에서 직접 이미지를 가져오지만, 공용 네트워크 액세스가 비활성화되어 더 이상 작동하지 않습니다. 자세한 내용은 "Azure에서 개인 저장소 엔드포인트를 사용할 때 리디렉션 비활성화"를 참조하세요. - 이 작업은 이미지 레지스트리 운영자에 의해 실행 취소될 수 없습니다.
2.5.2. Image Registry Operator가 VNet 및 서브넷 이름을 검색할 수 있도록 하여 Azure에서 개인 스토리지 엔드포인트 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Image Registry Operator가 VNet 및 서브넷 이름을 검색하도록 구성하여 Azure에서 개인 스토리지 엔드포인트를 설정하는 방법을 보여줍니다.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
귀하의 네트워크는 Installer Provisioned Infrastructure 설치 방법을 사용하여 설정되었습니다.
사용자 지정 네트워크 설정을 사용하는 사용자의 경우 "사용자가 제공한 VNet 및 서브넷 이름을 사용하여 Azure에서 개인 스토리지 엔드포인트 구성"을 참조하세요.
프로세스
Image Registry Operator
구성객체를 편집하고networkAccess.type을Internal로 설정합니다.$ oc edit configs.imageregistry/cluster# ... spec: # ... storage: azure: # ... networkAccess: type: Internal # ...선택 사항: 운영자가 프로비저닝을 완료했는지 확인하려면 다음 명령을 입력하세요. 이 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다.
$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w선택 사항: 레지스트리가 경로에 의해 노출되고 스토리지 계정을 비공개로 구성하는 경우, 클러스터 외부로의 풀이 계속 작동하도록 하려면 리디렉션을 비활성화해야 합니다. Image Operator 구성에서 리디렉션을 비활성화하려면 다음 명령을 입력하세요.
$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'참고리디렉션이 활성화되면 클러스터 외부에서 이미지를 가져오는 것이 작동하지 않습니다.
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
$ oc get imagestream -n openshift출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...다음 명령을 실행하여 디버그 모드로 들어갑니다.
$ oc debug node/<node_name>제안된
chroot명령을 실행합니다. 예를 들면 다음과 같습니다.$ chroot /host컨테이너 레지스트리에 로그인하려면 다음 명령을 입력하세요.
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000출력 예
Login Succeeded!레지스트리에서 이미지를 가져올 수 있는지 확인하려면 다음 명령을 입력하세요.
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools출력 예
Trying to pull image-registry.openshift-image-registry.svc:5000/openshift/tools/openshift/tools... Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures 22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9
2.5.3. 사용자가 제공한 VNet 및 서브넷 이름을 사용하여 Azure에서 개인 스토리지 엔드포인트 구성 링크 복사링크가 클립보드에 복사되었습니다!
Azure에서 공용 네트워크 액세스를 비활성화하고 개인 스토리지 엔드포인트 뒤에 노출되는 스토리지 계정을 구성하려면 다음 절차를 따르세요.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
- Azure 환경에 사용되는 VNet 및 서브넷 이름을 알아야 합니다.
- 네트워크가 Azure의 별도 리소스 그룹에 구성된 경우 해당 리소스 그룹의 이름도 알아야 합니다.
프로세스
Image Registry Operator
구성개체를 편집하고 VNet 및 서브넷 이름을 사용하여 개인 엔드포인트를 구성합니다.$ oc edit configs.imageregistry/cluster# ... spec: # ... storage: azure: # ... networkAccess: type: Internal internal: subnetName: <subnet_name> vnetName: <vnet_name> networkResourceGroupName: <network_resource_group_name> # ...선택 사항: 운영자가 프로비저닝을 완료했는지 확인하려면 다음 명령을 입력하세요. 이 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다.
$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w참고리디렉션이 활성화되면 클러스터 외부에서 이미지를 가져오는 것이 작동하지 않습니다.
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
$ oc get imagestream -n openshift출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...다음 명령을 실행하여 디버그 모드로 들어갑니다.
$ oc debug node/<node_name>제안된
chroot명령을 실행합니다. 예를 들면 다음과 같습니다.$ chroot /host컨테이너 레지스트리에 로그인하려면 다음 명령을 입력하세요.
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000출력 예
Login Succeeded!레지스트리에서 이미지를 가져올 수 있는지 확인하려면 다음 명령을 입력하세요.
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools출력 예
Trying to pull image-registry.openshift-image-registry.svc:5000/openshift/tools/openshift/tools... Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures 22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9
2.5.4. 선택 사항: Azure에서 개인 저장소 엔드포인트를 사용할 때 리디렉션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 이미지 레지스트리를 사용하면 리디렉션이 활성화됩니다. 리디렉션을 사용하면 레지스트리 포드에서 개체 스토리지로 트래픽을 오프로드할 수 있으므로 풀 속도가 더 빨라집니다. 리디렉션이 활성화되어 있고 스토리지 계정이 비공개인 경우 클러스터 외부의 사용자는 레지스트리에서 이미지를 가져올 수 없습니다.
어떤 경우에는 클러스터 외부의 사용자가 레지스트리에서 이미지를 가져올 수 있도록 리디렉션을 비활성화하려고 할 수 있습니다.
리디렉션을 비활성화하려면 다음 절차를 따르세요.
사전 요구 사항
- Azure에서 실행되도록 이미지 레지스트리를 구성했습니다.
- 경로를 구성했습니다.
프로세스
이미지 레지스트리 구성에서 리디렉션을 비활성화하려면 다음 명령을 입력하세요.
$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
검증
다음 명령을 실행하여 레지스트리 서비스 이름을 가져옵니다.
$ oc get imagestream -n openshift출력 예
NAME IMAGE REPOSITORY TAGS UPDATED cli default-route-openshift-image-registry.<cluster_dns>/cli latest 8 hours ago ...컨테이너 레지스트리에 로그인하려면 다음 명령을 입력하세요.
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>출력 예
Login Succeeded!레지스트리에서 이미지를 가져올 수 있는지 확인하려면 다음 명령을 입력하세요.
$ podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns> /openshift/tools출력 예
Trying to pull default-route-openshift-image-registry.<cluster_dns>/openshift/tools... Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures 22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9