作为 vSphere 管理员,您在 vSphere 集群上启用工作负载管理平台时,可以配置 vSphere 网络连接堆栈以提供与工作负载的连接。配置了 vSphere 网络连接的 主管集群 支持部署使用 Tanzu Kubernetes Grid 服务 创建的 Tanzu Kubernetes 集群。不支持运行 vSphere Pod 或使用嵌入式 Harbor 注册表

小心: 配置 主管集群 后,请勿禁用 vSphere DRS。始终启用 DRS 是在 主管集群 上运行工作负载的必备条件。禁用 DRS 会造成 Tanzu Kubernetes 集群中断。

前提条件

过程

  1. 从主菜单中,选择工作负载管理
  2. 主管集群 选择一个许可选项。
    • 如果您具有有效的 Tanzu 版本许可证,请单击添加许可证,将许可证密钥添加到 vSphere 的许可证清单中。

    • 如果您尚不具备 Tanzu 版本许可证,请输入详细联系信息,以便从 VMware 接收通信信息,然后单击开始使用

    主管集群 的评估期持续 60 天。在这段时间内,您必须向该集群分配有效的 Tanzu 版本许可证。如果已添加 Tanzu 版本许可证密钥,则可以在完成 主管集群 设置后的 60 天评估期内分配该密钥。

  3. 工作负载管理屏幕上,再次单击开始使用
  4. 选择 vCenter Server 系统,选择 vCenter Server 网络,然后单击下一步
  5. 从兼容集群列表中选择集群。
  6. 控制平面大小页面中,为将在集群中的每个主机上创建的 Kubernetes 控制平面虚拟机选择大小。

    分配给控制平面虚拟机的资源量决定了 主管集群 可管理的 Kubernetes 工作负载数量。

  7. 负载均衡器屏幕上,选择要使用的负载均衡器。可以选择 NSX Advanced Load Balancer 或 HAProxy。
    • NSX Advanced Load Balancer 输入以下设置:

      选项

      描述

      名称

      输入 NSX Advanced Load Balancer 的名称。

      Avi 控制器 IP

      NSX Advanced Load Balancer 控制器的 IP 地址。

      默认端口为 443

      用户名

      使用 NSX Advanced Load Balancer 配置的用户名。您可以使用此用户名访问 Controller。

      密码

      用户名对应的密码。

      服务器证书颁发机构

      控制器使用的证书。

      您可以提供在配置期间分配的证书。

      有关详细信息,请参见将证书分配给控制器

    • 输入 HAProxy 的以下设置:

      选项

      描述

      名称

      负载均衡器的用户友好名称。

      数据平面 API 地址

      HAProxy 数据平面 API 的 IP 地址和端口。此组件可控制 HAProxy 服务器,并在 HAProxy 虚拟机内运行。这是 HAProxy 设备的管理网络 IP 地址。

      用户名

      使用 HAProxy OVA 文件配置的用户名。您可以使用此名称向 HAProxy 数据平面 API 进行身份验证。

      密码

      用户名对应的密码。

      虚拟服务器的 IP 地址范围

      Tanzu Kubernetes 集群在工作负载网络中使用的 IP 地址范围。此 IP 范围来自在 HAProxy 设备部署期间配置的 CIDR 中定义的 IP 列表。通常,这是在 HAProxy 部署中指定的整个范围,但也可以是该 CIDR 的子集,因为您可以创建多个主管集群,并使用该 CIDR 范围内的 IP。此外,此范围不得与在此向导中为工作负载网络定义的 IP 范围重叠。该范围也不得与此工作负载网络上的任何 DHCP 范围重叠。

      服务器证书颁发机构

      PEM 格式的证书,它已签名,或者是数据平面 API 提供的服务器证书的受信任根。

      • 方案 1:如果启用 root 访问,则以 root 用户身份通过 SSH 登录到 HAProxy 虚拟机,并将 /etc/haproxy/ca.crt 复制到服务器证书颁发机构。不要使用 \n 格式的转义行。

      • 方案 2:右键单击 HAProxy 虚拟机,然后选择编辑设置。从相应的字段中复制 CA 证书,并使用转换工具(例如 https://www.base64decode.org/)从 Base64 转换该证书。

      • 方案 3:运行以下 PowerCLI 脚本。将变量 $vc$vc_user$vc_password 替换为适当的值。

        $vc = "10.21.32.43"
        $vc_user = "[email protected]"
        $vc_password = "PASSWORD"
        Connect-VIServer -User $vc_user -Password $vc_password -Server $vc
        $VMname = "haproxy-demo"
        $AdvancedSettingName = "guestinfo.dataplaneapi.cacert"
        $Base64cert = get-vm $VMname |Get-AdvancedSetting -Name $AdvancedSettingName
        while ([string]::IsNullOrEmpty($Base64cert.Value)) {
             Write-Host "Waiting for CA Cert Generation... This may take a under 5-10
        minutes as the VM needs to boot and generate the CA Cert
        (if you haven't provided one already)."
             $Base64cert = get-vm $VMname |Get-AdvancedSetting -Name $AdvancedSettingName
             Start-sleep -seconds 2
             }
             Write-Host "CA Cert Found... Converting from BASE64" 
             $cert = [Text.Encoding]::Utf8.GetString([Convert]::FromBase64String($Base64cert.Value))
        Write-Host $cert
  8. 管理网络屏幕上,配置将用于 Kubernetes 控制平面虚拟机的网络的参数。
    1. 选择网络模式
      • DHCP 网络。在此模式下,管理网络的所有 IP 地址(如控制平面虚拟机 Ip、浮动 IP、DNS 服务器、DNS、搜索域和 NTP 服务器)都将自动从 DHCP 服务器获取。要获取浮动 IP,必须将 DHCP 服务器配置为支持客户端标识符。在 DHCP 模式下,所有控制平面虚拟机都使用稳定的 DHCP 客户端标识符来获取 IP 地址。这些客户端标识符可用于为 DHCP 服务器上的控制平面虚拟机的 IP 设置静态 IP 分配,以确保它们不会发生更改。不支持更改控制平面虚拟机的 IP 以及浮动 IP。

      • 静态。手动输入管理网络的所有网络连接设置。

    2. 配置管理网络的设置。

      如果选择了 DHCP 网络模式,但要覆盖从 DHCP 获取的设置,请单击其他设置,然后输入新值。如果选择了静态网络模式,请手动填写管理网络设置的值。

      选项 描述

      网络

      选择为管理流量配置了 VMkernel 适配器的网络。

      起始控制 IP 地址

      输入一个 IP 地址,该地址确定为 Kubernetes 控制平面虚拟机预留五个连续 IP 地址的起点,如下所示:

      • 每个 Kubernetes 控制平面虚拟机一个 IP 地址。

      • 一个 Kubernetes 控制平面虚拟机的浮动 IP 地址,作为管理网络的接口。具有分配的浮动 IP 地址的控制平面虚拟机用作所有三个 Kubernetes 控制平面虚拟机的主要虚拟机。浮动 IP 将移至作为 Kubernetes 集群中的 ectd 主节点的控制平面节点。这在出现网络分区时可提高可用性。

      • 在一个 Kubernetes 控制平面虚拟机出现故障后,启动一个新的控制平面虚拟机来替代此关闭的虚拟机时用作缓冲区的 IP 地址。

      子网掩码

      仅适用于静态 IP 配置。输入管理网络的子网掩码。

      例如,255.255.255.0

      DNS 服务器

      输入环境中使用的 DNS 服务器的地址。如果 vCenter Server 系统已向 FQDN 注册,则必须输入在 vSphere 环境中使用的 DNS 服务器的 IP 地址,以便在 主管集群 中解析 FQDN。

      DNS 搜索域

      输入 DNS 在 Kubernetes 控制平面节点中搜索的域名(如 corp.local),以便 DNS 服务器解析这些域名。

      NTP

      输入环境中使用的 NTP 服务器的地址(如有)。

  9. 工作负载网络页面中,输入将为 主管集群 上运行的 Kubernetes 工作负载处理网络连接流量的网络的设置。
    注:

    如果选择使用 DHCP 服务器为工作负载网络提供网络连接设置,则在完成 主管集群 配置后,将无法创建任何新的工作负载网络。

    1. 选择网络模式。
      • DHCP 网络。在此网络模式下,工作负载网络的所有网络设置都通过 DHCP 获取。

      • 静态。手动配置工作负载网络设置。

    2. 选择将用作 主管集群 的主工作负载网络的端口组

      主网络处理 Kubernetes 控制平面虚拟机的流量和 Kubernetes 工作负载流量。

      您可以稍后分配一个不同的端口组用作每个命名空间的网络,具体取决于您的网络连接拓扑。通过这种方式,可以在 主管集群 中的命名空间之间提供第 2 层隔离。未分配不同端口组作为其网络的命名空间将使用主网络。Tanzu Kubernetes 集群仅使用分配给它们的部署命名空间的网络,如果未向该命名空间分配明确的网络,它们将使用主网络

    3. 配置工作负载网络的设置。

      如果选择了 DHCP 网络模式,则会自动从 DHCP 服务器填充其他设置部分下的所有值。如果要覆盖这些值,请单击其他设置,然后输入新值。如果选择了静态网络模式,请手动填写所有设置。

    选项 描述

    Kubernetes 服务的内部网络

    输入确定 Tanzu Kubernetes 集群中运行的服务的 IP 地址范围的 CIDR 注释。

    网络名称

    输入网络名称。

    DNS 服务器

    输入环境中使用的 DNS 服务器的 IP 地址(如有)。

    例如,10.142.7.1

    输入 DNS 服务器的 IP 地址时,将在每个控制平面虚拟机上添加静态路由。这表示传输到 DNS 服务器的流量通过工作负载网络。

    如果指定的 DNS 服务器在管理网络和工作负载网络之间共享,则在初始设置后,将通过工作负载网络路由控制平面虚拟机上的 DNS 查找。

    网关

    输入主网络的网关。

    子网掩码 IP

    输入子网掩码 IP 地址。

    IP 地址范围

    输入用于分配 Kubernetes 控制平面虚拟机和工作负载的 IP 地址的 IP 范围。

    此地址范围连接 主管集群 节点,并且在单个工作负载网络的情况下,还会连接 Tanzu Kuberentes 集群节点。对 HAProxy 使用默认配置时,此 IP 范围不得与负载均衡器 VIP 范围重叠。

  10. 存储页面上,配置存储和文件卷支持。
    1. 主管集群 选择存储策略。

      为以下每个对象选择的存储策略可确保将对象放置在存储策略中引用的数据存储上。可以对这些对象使用相同或不同的存储策略。

      选项 描述

      控制平面节点

      选择用于放置控制平面虚拟机的存储策略。

      Pod 临时磁盘

      选择用于放置 vSphere Pod 的存储策略。

      容器映像缓存

      选择用于放置容器映像缓存的存储策略。

    2. (可选) 激活文件卷支持。
      如果计划在集群上部署 ReadWriteMany 持久卷,则需要此选项。请参见 在 vSphere with Tanzu 中创建 ReadWriteMany 持久卷
  11. Tanzu Kubernetes Grid 页面上,单击添加,然后选择包含用于部署 Tanzu Kubernetes 集群节点的虚拟机映像的已订阅内容库。
  12. 查看设置,然后单击完成

结果

任务在创建 主管集群vCenter Server 上运行。任务完成后,将在属于该 vSphere 集群的主机上创建三个 Kubernetes 控制平面虚拟机。

下一步做什么

主管集群 上创建并配置 vSphere 命名空间。请参见创建和配置 vSphere 命名空间