服务提供商必须执行必要的步骤,以设置 VMware Cloud Director Container Service Extension 气隙环境,并为租户用户创建一个本地容器注册表,该注册表应包含 VMware Cloud Director Container Service Extension 运行所需的依赖项。

前提条件

  • 确保在本地计算机上安装了 Docker Engine 或 cli 以及 imgpkg
  • 确保 VMware Cloud Director Container Service Extension 服务器和所需的租户数据中心可以访问 VMware Cloud Director 公用端点。这是必需操作,因为引导 VM、Kubernetes Cloud Provider for VMware Cloud DirectorKubernetes Cluster API Provider for VMware Cloud DirectorKubernetes Container Storage Interface driver for VMware Cloud Director 会对其进行调用。
  • 用于解析注册表和 VMware Cloud Director 端点的 DNS 服务器。
  • 提供本地容器注册表 URL,以便引导 VM 以及所有其他控制平面或工作节点 VM 可以从中提取映像。有关详细信息,请参见本地容器注册表
  • 如果专用注册表使用的是自签名证书,请将引导 VM 和集群证书部分更新为使用自签名证书。执行此步骤后,集群虚拟机(如引导 VM 和节点 VM)将信任专用注册表。有关详细信息,请参见服务器详细信息

    以下屏幕截图详细说明了在 VMware Cloud DirectorKubernetes Container Clusters插件中配置容器注册表设置和证书的工作流:

    此屏幕截图详细说明了 Kubernetes 容器集群 UI 插件中的容器注册表设置。
  • 确保您有权访问 Internet,以便将 VMware Cloud Director Container Service Extension 二进制文件从 http://projects.registry.vmware.com 下载到本地计算机。

过程

  1. 打开 Docker,然后运行以下命令从 http://projects.registry.vmware.com 提取 getting-started_airgapped 映像。
    • 对于 4.2:
      docker pull projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.2
    • 对于 4.2.1:
      docker pull projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.3
    • 对于 4.2.2:
      docker pull projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.4
  2. 展开映像以获得对脚本的访问权限并创建一个本地目录。
    • 对于 4.2:
      docker create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.2
      docker export "temp_container" -o temp_container.tar
      docker container rm "temp_container"
      mkdir -p temp_container_fs
      tar xvf temp_container.tar -C temp_container_fs
      cd ./temp_container_fs/src/artifact
    • 对于 4.2.1:
      docker create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.3
      docker export "temp_container" -o temp_container.tar
      docker container rm "temp_container"
      mkdir -p temp_container_fs
      tar xvf temp_container.tar -C temp_container_fs
      cd ./temp_container_fs/src/artifact
    • 对于 4.2.2:
      docker create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/getting-started-airgapped:v0.1.4
      docker export "temp_container" -o temp_container.tar
      docker container rm "temp_container"
      mkdir -p temp_container_fs
      tar xvf temp_container.tar -C temp_container_fs
      cd ./temp_container_fs/src/artifact
  3. 在此目录中,运行以下脚本以将依赖关系发布到组织的本地容器注册表。对注册表的路径存在严格的依赖关系,如下所示。
    ./getting_started.sh "dependencies.txt" base.myregistry.company.com
    注:
    • getting-started-airgapped 映像中的默认 dependencies.txt 包含在气隙环境中对受支持的 Tanzu Kubernetes Grid 版本使用 VMware Cloud Director Container Service Extension 所需的完整容器列表。有关支持的 Tanzu Kubernetes Grid 版本,请参见兼容性部分。
    • 可以编辑 dependencies.txt 文件以自定义要下载的组件。可通过在 dependencies.txt 中的相应行前面插入 #,阻止对某个气隙组件的处理。
  4. 需要将 Tanzu 核心软件包从 projects.registry.vmware.com 上载到本地容器注册表。为此,请按照以下相应 Tanzu Kubernetes Grid 版本中的说明进行操作。
  5. 如果需要创建 Tanzu Kubernetes Grid 2.3.1、2.4 和 2.5 集群,则需要将 Tanzu Kubernetes Grid 2.3.1、2.4 和 2.5 CLI 插件上载到注册表路径 <registry_url>/tanzu_cli/plugins/plugin-inventory:latest。有关详细说明,请参见将 Tanzu CLI 和 CLI 插件移至 Internet 受限的环境中
    注: 对于 VMware Cloud Director Container Service Extension 4.2 及更高版本, Tanzu Kubernetes Grid 映像的上载路径存在严格的依赖关系。
    • 如果注册表库为 base.myregistry.company.com,则应将 Tanzu Kubernetes Grid 内容上载到 base.myregistry.company.com/tkg
    • 如果注册表库为 base.myregistry.company.com,则应将 VMware Cloud Director 映像上载到 base.myregistry.company.com/vmware-cloud-director
    • 如果注册表库为 base.myregistry.company.com,则应将适用于 TKG 2.3.1、TKG 2.4 和 TKG 2.5 的 Tanzu CLI 插件上载到 base.myregistry.company.com/tanzu_cli/plugins/plugin-inventory:latest
    这意味着,子路径 tkgvmware-cloud-directortanzu_cli 必须彼此相邻。

结果

现在设置了一个气隙环境,这样组织无需访问 Internet 即可使用 VMware Cloud Director Container Service Extension,本地容器注册表中提供了所需的所有资源。