你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Red Hat OpenShift 提供了集成容器映像注册表,该注册表增加了按需自动预配新映像存储库的功能。 此注册表为用户提供了应用程序的内置位置,用于推送生成的映像。
在本文中,你将为 Azure Red Hat OpenShift 4 群集配置内置容器映像注册表。 你将了解如何:
- 授权标识访问注册表
- 从群集内部访问内置容器映像注册表
- 从群集外部访问内置容器映像注册表
在您开始之前
本文假定你已有一个群集(请参阅 创建 Azure Red Hat OpenShift 4 群集)。 如果要配置 Microsoft Entra 集成,请确保使用 --pull-secret 的 az aro create 参数创建群集。
注释
为群集配置 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>
访问注册表
为注册表配置身份验证后,可以与之交互:
从群集内部
如果需要从群集内部访问注册表(例如,以 Pod 的形式运行 CI/CD 平台,将映像推送/拉取到注册表),可以通过其 ClusterIP 服务 访问注册表,该域名 image-registry.openshift-image-registry.svc.cluster.local:5000可供群集中的所有 Pod 访问。
从群集外部
如果工作流需要从群集外部访问内部注册表(例如,想要从开发人员的笔记本电脑、外部 CI/CD 平台和/或其他群集推送/拉取映像),则需要执行几个其他步骤:
作为 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 应用程序。