在系统尝试安装 Helm Chart 时,NSX Application Platform 部署尝试失败。

问题

在完成 10% 的 NSX Application Platform 部署过程后,在尝试安装 Helm Chart 时,系统显示以下错误消息。
NSX Application Platform deployment failed!
See Troubleshooting Documentation.
Helm install chart operation failed. Error: failed post-install: timed out waiting for the condition.

原因

过程正在尝试访问配置为使用 HTTP 而不是 HTTPS 的 Harbor 注册表。

解决方案

  1. 对于生产环境,基础架构管理员必须获取 CA 签名证书,以配置对他们安装的专用 Harbor 注册表的 HTTPS 访问。有关详细信息,请参见配置对 Harbor 的 HTTPS 访问网页。
  2. (可选) (对于上游 Kubernetes 集群,请谨慎使用该步骤。)如果要继续使用采用 HTTP 而不是 HTTPS 的 Harbor 注册表,基础架构管理员必须将以下信息作为解决办法。他们必须在用于部署 NSX Application Platform 的上游 Kubernetes 集群的所有控制节点和 worker 节点上应用该解决办法。
    1. 将以下内容添加到 daemon.json 文件中,该文件位于 /etc/docker/daemon.json 目录中。
      {
      "insecure-registries" : ["Harbor FQDN or Harbor IP"]
      }
      
    2. 使用以下命令重新启动 Docker Engine。
      systemctl restart docker
  3. (可选) (对于 TKG Cluster on Supervisor,请谨慎使用此步骤。)要继续使用采用 HTTP 而不是 HTTPS 的 Harbor 注册表,基础架构管理员必须在用于部署 NSX Application Platform 的 TKG Cluster on Supervisor 的所有控制节点和 worker 节点上应用以下解决办法信息。
    1. 按照以系统用户身份使用密码通过 SSH 访问 Tanzu Kubernetes 集群节点中所述的步骤,登录到每个 Tanzu worker 节点。
    2. 使用以下命令编辑 config.toml 文件。
      sudo vim /etc/containerd/config.toml
    3. config.toml 中为 Harbor 注册表添加以下条目,其中“10.222.44.111”是一个示例 Harbor 注册表的 URL。
       [plugins.cri.registry]
            [plugins.cri.registry.mirrors]
              [plugins.cri.registry.mirrors."docker.io"]
                endpoint = ["https://registry-1.docker.io"]
              [plugins.cri.registry.mirrors."localhost:5000"]
                 endpoint = ["http://localhost:5000"]
              [plugins.cri.registry.mirrors."10.222.44.111"]
                 endpoint = ["http://10.222.44.111"] 
    4. 使用以下命令重新启动 Docker 客户端。
      sudo systemctl restart docker