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/clusterCopy 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}" -wCopy 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 registry info --internal=true
$ oc registry info --internal=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
image-registry.openshift-image-registry.svc:5000
image-registry.openshift-image-registry.svc:5000Copy 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 /hostCopy 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:5000Copy 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/toolsCopy 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/clusterCopy 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}" -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用重定向后,从集群外部拉取镜像将无法正常工作。
验证
运行以下命令来获取 registry 服务名称:
oc registry info --internal=true
$ oc registry info --internal=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
image-registry.openshift-image-registry.svc:5000
image-registry.openshift-image-registry.svc:5000Copy 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 /hostCopy 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:5000Copy 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/toolsCopy 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 registry info
$ oc registry infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
default-route-openshift-image-registry.<cluster_dns>
default-route-openshift-image-registry.<cluster_dns>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/toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow