共用方式為


設定適用於 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:5000ClusterIP 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 應用程式