了解如何为主管集群和 TKG 集群配置 HTTP 代理设置,以及向 Tanzu Misson control 注册主管集群和 TKG 集群时配置代理的工作流。

您可以通过 vSphere Client、集群管理 API 或 DCLI 命令为主管配置代理。如果您需要处理来自主管的外部网络的容器流量或映像拉取操作,则可以使用代理。对于在 Tanzu Mission Control 中注册为管理集群的内部部署主管,可以使用 HTTP 代理来处理映像拉取操作和容器流量。

在新创建的 vSphere 7.0 Update 3 及更高版本的 主管 上配置代理设置

对于在 vSphere 7.0 Update 3 及更高版本的环境中新创建的 主管,将从 vCenter Server 继承 HTTP 代理设置。无论在 主管 上配置 HTTP 代理设置之前还是之后创建 vCenter Server,集群都将继承这些设置。

请参见配置 DNS、IP 地址和代理设置,了解如何在 vCenter Server 上配置 HTTP 代理设置。

您也可以通过 vSphere Client、集群管理 API 或 DCLI 覆盖各个主管上继承的 HTTP 代理配置。

由于继承 vCenter Server 代理设置是新创建的 vSphere 7.0.3 主管 的默认配置,因此,如果 主管 不需要代理,但 vCenter Server 仍然需要,也可以使用集群管理 API 或 DCLI 不继承任何 HTTP 代理设置。

在升级到 vSphere 7.0 Update 3 及更高版本的 主管 上配置代理设置

如果将 主管 升级到 vSphere 7.0 Update 3 及更高版本,则不会自动继承 vCenter Server 的 HTTP 代理设置。在这种情况下,可以使用 vSphere Client、vcenter/namespace-management/clusters API 或 DCLI 命令行为主管配置代理设置。

vSphere IaaS control plane 中的 TKG 集群配置 HTTP 代理

使用以下方法之一为 vSphere IaaS control plane 中的 Tanzu Kubernetes 集群配置代理:
注: 如果使用 Tanzu Mission Control 管理 TKG 集群,则无需通过 vSphere IaaS control plane 中的集群 YAML 文件配置代理设置。将 TKG 集群作为工作负载集群添加到 Tanzu Mission Control 时,可以配置代理设置。

使用 vSphere Client主管上配置 HTTP 代理设置

了解如何通过 vSphere Client主管配置 HTTP 代理设置。可以在单个主管上覆盖从 vCenter Server 继承的代理设置,也可以选择完全不使用任何代理设置。

前提条件

  • 验证您对集群是否具有修改集群范围的配置特权。

过程

  1. vSphere Client 中,导航到工作负载管理
  2. 主管下,选择 主管,然后选择配置
  3. 选择网络,展开代理配置,然后单击编辑
  4. 选择“在主管上配置代理设置”,然后输入代理设置。
    选项 描述
    TLS 证书 用于验证代理证书的代理 TLS 根 CA 包。以纯文本形式输入该包。
    从代理中排除的主机和 IP 地址 不需要代理服务器且可以直接访问的以逗号分隔的 IPv4 地址、FQDN 或域名列表。
    HTTPS 配置 HTTPS 设置,例如 URL、端口号、用户名和密码。
    HTTP 配置 HTTP 设置,例如 URL、端口号、用户名和密码。
  5. 单击确定

结果

在此 主管上配置的代理设置将覆盖从 vCenter Server 继承的设置。

使用集群管理 API 和 DCLI 为主管配置 HTTP 代理

可以通过主管 API 或 DCLI 配置 vcenter/namespace-management/clusters 代理设置。

此 API 为 主管上的代理配置提供了三个选项:

API 设置

新创建的 vSphere 7.0.3 及更高版本的 主管

升级到 vSphere 7.0.3 及更高版本的 主管

VC_INHERITED 这是新 主管 的默认设置,您无需使用 API 配置 主管 代理设置。可以只在 vCenter Server 上使用其管理界面配置代理设置。 使用此设置将 HTTP 代理配置推送到已升级到 vSphere 7.0.3 及更高版本的 主管
CLUSTER_CONFIGURED

在以下任意一种情况下,使用此设置可以替代从 vCenter Server 继承的 HTTP 代理配置:

  • 主管vCenter Server 位于不同的子网中,需要使用不同的代理服务器。
  • 代理服务器使用自定义 CA 包。

在以下任意一种情况下,使用此设置可为升级到 vSphere 7.0.3 及更高版本的单个 主管 配置 HTTP 代理:

  • 无法使用 vCenter Server 代理,因为 主管vCenter Server 位于不同的子网中,需要使用不同的代理服务器。
  • 代理服务器使用自定义 CA 包。
NONE 主管 直接连接到 Internet,而 vCenter Server 需要代理时,使用此设置。NONE 设置将使 主管 无法继承 vCenter Server 的代理设置。

要为 主管 设置 HTTP 代理或修改现有设置,请在 vCenter Server 的 SSH 会话中使用以下命令:

vc_address=<IP address>
cluster_id=domain-c<number>
session_id=$(curl -ksX POST --user '<SSO user name>:<password>' https://$vc_address/api/session | xargs -t)
curl -k -X PATCH -H "vmware-api-session-id: $session_id" -H "Content-Type: application/json" -d '{ "cluster_proxy_config": { "proxy_settings_source": "CLUSTER_CONFIGURED", "http_proxy_config":"<proxy_url>" } }' https://$vc_address/api/vcenter/namespace-management/clusters/$cluster_id

只需传递完整集群 ID 中的 domain_c<number>。例如,使用以下集群 ID 中的 domain-c50ClusterComputeResource:domain-c50:5bbb510f-759f-4e43-96bd-97fd703b4edb

使用 VC_INHERITEDNONE 设置时,请在命令中省略 "http_proxy_config:<proxy_url>"

要使用自定义 CA 包,请在命令中添加 "tlsRootCaBundle": "<TLS_certificate>,并以纯文本形式提供 TSL CA 证书。

对于 HTTPS 代理设置,请使用以下命令:
curl -k -X PATCH -H "vmware-api-session-id: $session_id" 
-H "Content-Type: application/json" -d '{ "cluster_proxy_config": 
{ "proxy_settings_source": "CLUSTER_CONFIGURED", "https_proxy_config":"<proxy_url>" } }' 
https://$vc_address/api/vcenter/namespace-management/clusters/$cluster_id

使用 DCLI 在 主管 上配置 HTTP 代理设置

可以在以下 DCLI 命令中使用 CLUSTER_CONFIGURED 设置为 主管 配置 HTTP 代理设置。

<dcli> namespacemanagement clusters update --cluster domain-c57 --cluster-proxy-config-http-proxy-config <proxy URL> --cluster-proxy-config-https-proxy-config <proxy URL> --cluster-proxy-config-proxy-settings-source CLUSTER_CONFIGURED

主管 和 TKG 集群上为 Tanzu Mission Control 配置 HTTP 代理设置

要在希望作为管理集群注册到 Tanzu Mission Control 的 主管 上配置 HTTP 代理,请执行以下步骤:

  1. 在 vSphere 中,通过以下两种方式在 主管 上配置 HTTP 代理:从 vCenter Server 继承 HTTP 代理设置,或者通过 vSphere Client 命名空间管理集群 API 或 DCLI 命令行在单个 主管 上配置代理设置。
  2. 在 Tanzu Mission Control 中,使用您在 vSphere IaaS control plane 中为 主管 配置的代理设置创建代理配置对象。请参见为 Tanzu Kubernetes Grid Service 集群创建代理配置对象
  3. 在 Tanzu Mission Control 中,将 主管 注册为管理集群时使用此代理配置对象。请参见在 Tanzu Mission Control 中注册管理集群完成主管集群注册

要为在 Tanzu Mission Control 中置备或添加为工作负载集群的 TKG 集群配置 HTTP 代理,请执行以下操作:

  1. 使用要用于 Tanzu Kubernetes 集群的代理设置创建代理配置对象。请参见为 Tanzu Kubernetes Grid Service 集群创建代理配置对象
  2. Tanzu Kubernetes 集群置备或添加为工作负载集群时,使用该代理配置对象。请参见置备集群将工作负载集群添加到 Tanzu Mission Control Management