你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 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 ServiceAccounts,将名称格式改为 system:serviceaccount:<project>:<name>
访问注册表
为注册表配置身份验证后,可以与之交互:
从群集内部
如果需要从群集内部访问注册表(例如,将 CI/CD 平台作为 Pod 运行,该平台将向注册表推送/拉取映像),则可以通过其 ClusterIP 服务访问注册表,网址为完全限定域名 image-registry.openshift-image-registry.svc.cluster.local:5000
(群集内的所有 Pod 都可以访问)。
从群集外部
如果工作流要求从群集外部访问内部注册表(例如,要从开发人员的笔记本电脑、外部 CI/CD 平台和/或其他 ARO 群集推送/拉取映像),则需要执行几个额外步骤:
作为 kubeadmin
,执行以下命令以通过路由群集外部公开内置注册表:
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 应用程序。