設定適用於 Azure Red Hat OpenShift 4 的內建容器登錄
Azure Red Hat OpenShift 提供整合式容器映像登錄,更有能力視需要自動佈建新的映像存放庫。 這提供內建位置供使用者的應用程式組建推送產生的映像。
在本文中,您將為 Azure Red Hat OpenShift (ARO) 4 叢集設定內建的容器映像登錄。 您將學習如何:
- 授權身分識別來存取登錄
- 從叢集內部存取內建容器映像登錄
- 從叢集外部存取內建容器映像登錄
開始之前
本文假設您目前有 ARO 叢集 (請參閱建立 Azure Red Hat OpenShift 4 叢集)。 若要設定 Microsoft Entra 整合,請務必使用 az aro create
的 --pull-secret
引數建立叢集。
注意
若要從叢集外部與內部登錄互動,最簡單的方式是為叢集設定 Microsoft Entra 驗證。
取得叢集後,以 kubeadmin
使用者身分進行驗證來連線至叢集。
設定向登錄進行驗證
任何身分識別 (叢集使用者、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 ServiceAccount,請將名稱格式化為 system:serviceaccount:<project>:<name>
存取登錄
既然已設定向登錄進行驗證,您可以開始與之互動:
從叢集內部
如果需要從叢集內部存取登錄 (例如,您以 Pod 執行 CI/CD 平台,以往返於登錄來推送/提取映像),您可以透過位於完整網域名稱 image-registry.openshift-image-registry.svc.cluster.local:5000
的 ClusterIP Service (可由叢集內的所有 Pod 存取) 來存取登錄。
從叢集外部
如果工作流程需要您從叢集外部存取內部登錄 (例如,您想要從開發人員的膝上型電腦、外部 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 叢集上使用 Open Liberty/WebSphere Liberty 部署 JAVA 應用程式。