2.5. 在 Azure 上配置私有存储端点
您可以使用 Image Registry Operator 在 Azure 上使用私有端点,它会在 OpenShift Container Platform 部署到私有 Azure 集群上时启用私有存储帐户的无缝配置。这可让您在不公开面向公共的存储端点的情况下部署镜像 registry。
不要在 Microsoft Azure Red Hat OpenShift (ARO) 上配置私有存储端点,因为端点可能会使 Microsoft Azure Red Hat OpenShift 集群置于不可恢复的状态。
您可以通过两种方式之一将 Image Registry Operator 配置为使用 Azure 上的私有存储端点:
- 通过配置 Image Registry Operator 来发现 VNet 和子网名称
- 使用用户提供的 Azure Virtual Network (VNet) 和子网名称
2.5.1. 在 Azure 上配置私有存储端点的限制 复制链接链接已复制到粘贴板!
在 Azure 上配置私有存储端点时有以下限制:
-
在将 Image Registry Operator 配置为使用私有存储端点时,禁用对存储帐户的公共网络访问。因此,在 registry Operator 配置中设置
disableRedirect: true
才能从 OpenShift Container Platform 之外拉取镜像。启用重定向后,registry 会重定向客户端直接从存储帐户拉取镜像,这不再会因为公共网络访问被禁用而工作。如需更多信息,请参阅"在 Azure 上使用私有存储端点时禁用重定向"。 - Image Registry Operator 无法撤销此操作。
以下流程演示了如何通过配置 Image Registry Operator 来发现 VNet 和子网名称在 Azure 上设置私有存储端点。
先决条件
- 您已将镜像 registry 配置为在 Azure 上运行。
使用 Installer Provisioned Infrastructure 安装方法设置了您的网络。
对于具有自定义网络设置的用户,请参阅"使用用户提供的 VNet 和子网名称在 Azure 上配置私有存储端点"。
流程
编辑 Image Registry Operator
config
对象,并将networkAccess.type
设置为Internal
:oc edit configs.imageregistry/cluster
$ oc edit configs.imageregistry/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:输入以下命令确认 Operator 已完成置备。这可能需要几分钟时间。
oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果 registry 由路由公开,并且要将存储帐户配置为私有,则必须禁用重定向(如果集群外部拉取到集群),则必须禁用重定向才能继续工作。输入以下命令禁用 Image Operator 配置中的重定向:
oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用重定向后,从集群外部拉取镜像将无法正常工作。
验证
运行以下命令来获取 registry 服务名称:
oc get imagestream -n openshift
$ oc get imagestream -n openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来进入 debug 模式:
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行推荐的
chroot
命令。例如:chroot /host
$ chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令登录到容器 registry:
podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证您可以从 registry 中拉取镜像:
podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 使用用户提供的 VNet 和子网名称在 Azure 上配置私有存储端点 复制链接链接已复制到粘贴板!
使用以下步骤配置禁用公共网络访问权限的存储帐户,并在 Azure 上的私有存储端点后公开。
先决条件
- 您已将镜像 registry 配置为在 Azure 上运行。
- 您必须知道用于 Azure 环境的 VNet 和子网名称。
- 如果您的网络是在 Azure 中的单独资源组中配置的,还必须知道其名称。
流程
编辑 Image Registry Operator
config
对象并使用 VNet 和子网名称配置私有端点:oc edit configs.imageregistry/cluster
$ oc edit configs.imageregistry/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:输入以下命令确认 Operator 已完成置备。这可能需要几分钟时间。
oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
$ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用重定向后,从集群外部拉取镜像将无法正常工作。
验证
运行以下命令来获取 registry 服务名称:
oc get imagestream -n openshift
$ oc get imagestream -n openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli image-registry.openshift-image-registry.svc:5000/openshift/cli latest 8 hours ago ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来进入 debug 模式:
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行推荐的
chroot
命令。例如:chroot /host
$ chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令登录到容器 registry:
podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证您可以从 registry 中拉取镜像:
podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
$ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.4. 可选:在 Azure 上使用私有存储端点时禁用重定向 复制链接链接已复制到粘贴板!
默认情况下,在使用镜像 registry 时会启用重定向。重定向允许将 registry pod 的流量卸载到对象存储中,从而加快拉取速度。当启用重定向且存储帐户为私有时,来自集群外部的用户无法从 registry 中拉取镜像。
在某些情况下,用户可能希望禁用重定向,以便集群外部的用户可以从 registry 中拉取镜像。
使用以下步骤禁用重定向。
先决条件
- 您已将镜像 registry 配置为在 Azure 上运行。
- 您已配置了路由。
流程
输入以下命令禁用镜像 registry 配置中的重定向:
oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
$ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令来获取 registry 服务名称:
oc get imagestream -n openshift
$ oc get imagestream -n openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME IMAGE REPOSITORY TAGS UPDATED cli default-route-openshift-image-registry.<cluster_dns>/cli latest 8 hours ago ...
NAME IMAGE REPOSITORY TAGS UPDATED cli default-route-openshift-image-registry.<cluster_dns>/cli latest 8 hours ago ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令登录到容器 registry:
podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>
$ podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证您可以从 registry 中拉取镜像:
podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns>
$ podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns> /openshift/tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow