搜索

2.5. 在 Azure 上配置私有存储端点

download PDF

您可以使用 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 无法撤销此操作。

2.5.2. 通过启用 Image Registry Operator 发现 VNet 和子网名称,在 Azure 上配置私有存储端点

以下流程演示了如何通过配置 Image Registry Operator 来发现 VNet 和子网名称在 Azure 上设置私有存储端点。

先决条件

  • 您已将镜像 registry 配置为在 Azure 上运行。
  • 使用 Installer Provisioned Infrastructure 安装方法设置了您的网络。

    对于具有自定义网络设置的用户,请参阅"使用用户提供的 VNet 和子网名称在 Azure 上配置私有存储端点"。

流程

  1. 编辑 Image Registry Operator config 对象,并将 networkAccess.type 设置为 Internal

    $ oc edit configs.imageregistry/cluster
    # ...
    spec:
      # ...
       storage:
          azure:
            # ...
            networkAccess:
              type: Internal
    # ...
  2. 可选:输入以下命令确认 Operator 已完成置备。这可能需要几分钟时间。

    $ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
  3. 可选:如果 registry 由路由公开,并且要将存储帐户配置为私有,则必须禁用重定向(如果集群外部拉取到集群),则必须禁用重定向才能继续工作。输入以下命令禁用 Image Operator 配置中的重定向:

    $ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'
    注意

    启用重定向后,从集群外部拉取镜像将无法正常工作。

验证

  1. 运行以下命令来获取 registry 服务名称:

    $ oc registry info --internal=true

    输出示例

    image-registry.openshift-image-registry.svc:5000

  2. 运行以下命令来进入 debug 模式:

    $ oc debug node/<node_name>
  3. 运行推荐的 chroot 命令。例如:

    $ chroot /host
  4. 输入以下命令登录到容器 registry:

    $ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000

    输出示例

    Login Succeeded!

  5. 输入以下命令验证您可以从 registry 中拉取镜像:

    $ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools

    输出示例

    Trying to pull image-registry.openshift-image-registry.svc:5000/openshift/tools/openshift/tools...
    Getting image source signatures
    Copying blob 6b245f040973 done
    Copying config 22667f5368 done
    Writing manifest to image destination
    Storing signatures
    22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9

2.5.3. 使用用户提供的 VNet 和子网名称在 Azure 上配置私有存储端点

使用以下步骤配置禁用公共网络访问权限的存储帐户,并在 Azure 上的私有存储端点后公开。

先决条件

  • 您已将镜像 registry 配置为在 Azure 上运行。
  • 您必须知道用于 Azure 环境的 VNet 和子网名称。
  • 如果您的网络是在 Azure 中的单独资源组中配置的,还必须知道其名称。

流程

  1. 编辑 Image Registry Operator config 对象并使用 VNet 和子网名称配置私有端点:

    $ oc edit configs.imageregistry/cluster
    # ...
    spec:
      # ...
       storage:
          azure:
            # ...
            networkAccess:
              type: Internal
              internal:
                subnetName: <subnet_name>
                vnetName: <vnet_name>
                networkResourceGroupName: <network_resource_group_name>
    # ...
  2. 可选:输入以下命令确认 Operator 已完成置备。这可能需要几分钟时间。

    $ oc get configs.imageregistry/cluster -o=jsonpath="{.spec.storage.azure.privateEndpointName}" -w
    注意

    启用重定向后,从集群外部拉取镜像将无法正常工作。

验证

  1. 运行以下命令来获取 registry 服务名称:

    $ oc registry info --internal=true

    输出示例

    image-registry.openshift-image-registry.svc:5000

  2. 运行以下命令来进入 debug 模式:

    $ oc debug node/<node_name>
  3. 运行推荐的 chroot 命令。例如:

    $ chroot /host
  4. 输入以下命令登录到容器 registry:

    $ podman login --tls-verify=false -u unused -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000

    输出示例

    Login Succeeded!

  5. 输入以下命令验证您可以从 registry 中拉取镜像:

    $ podman pull --tls-verify=false image-registry.openshift-image-registry.svc:5000/openshift/tools

    输出示例

    Trying to pull image-registry.openshift-image-registry.svc:5000/openshift/tools/openshift/tools...
    Getting image source signatures
    Copying blob 6b245f040973 done
    Copying config 22667f5368 done
    Writing manifest to image destination
    Storing signatures
    22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9

2.5.4. 可选:在 Azure 上使用私有存储端点时禁用重定向

默认情况下,在使用镜像 registry 时会启用重定向。重定向允许将 registry pod 的流量卸载到对象存储中,从而加快拉取速度。当启用重定向且存储帐户为私有时,来自集群外部的用户无法从 registry 中拉取镜像。

在某些情况下,用户可能希望禁用重定向,以便集群外部的用户可以从 registry 中拉取镜像。

使用以下步骤禁用重定向。

先决条件

  • 您已将镜像 registry 配置为在 Azure 上运行。
  • 您已配置了路由。

流程

  • 输入以下命令禁用镜像 registry 配置中的重定向:

    $ oc patch configs.imageregistry cluster --type=merge -p '{"spec":{"disableRedirect": true}}'

验证

  1. 运行以下命令来获取 registry 服务名称:

    $ oc registry info

    输出示例

    default-route-openshift-image-registry.<cluster_dns>

  2. 输入以下命令登录到容器 registry:

    $ podman login --tls-verify=false -u unused -p $(oc whoami -t) default-route-openshift-image-registry.<cluster_dns>

    输出示例

    Login Succeeded!

  3. 输入以下命令验证您可以从 registry 中拉取镜像:

    $ podman pull --tls-verify=false default-route-openshift-image-registry.<cluster_dns>
    /openshift/tools

    输出示例

    Trying to pull default-route-openshift-image-registry.<cluster_dns>/openshift/tools...
    Getting image source signatures
    Copying blob 6b245f040973 done
    Copying config 22667f5368 done
    Writing manifest to image destination
    Storing signatures
    22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.