了解如何在三个 vSphere 区域上部署具有 VDS 网络堆栈的主管。每个 vSphere 区域都映射到一个 vSphere 集群。通过在三个 vSphere 区域上部署主管,您可以在集群级别为工作负载提供高可用性。配置了 VDS 网络连接的主管支持 Tanzu Kubernetes Grid 集群和通过虚拟机服务创建的虚拟机。但它不支持 vSphere Pod。
前提条件
- 完成将 vSphere 集群配置为 主管 的必备条件。请参见在 vSphere 集群上配置 vSphere IaaS control plane 的必备条件。
- 创建三个 vSphere 区域。请参见创建用于多区域 主管 部署的 vSphere 区域。
过程
- 从主菜单中,选择工作负载管理。
- 为 主管 选择一个许可选项。
-
如果您具有有效的 Tanzu 版本许可证,请单击添加许可证,将许可证密钥添加到 vSphere 的许可证清单中。
-
如果您尚不具备 Tanzu 版本许可证,请输入详细联系信息,以便从 VMware 接收通信信息,然后单击开始使用。
主管 的评估期持续 60 天。在这段时间内,您必须向该集群分配有效的 Tanzu 版本许可证。如果已添加 Tanzu 版本许可证密钥,则可以在完成 主管 设置后的 60 天评估期内分配该密钥。
-
- 在工作负载管理屏幕上,再次单击开始使用。
- 选择 vCenter Server 和网络页面,选择为 主管 部署设置的 vCenter Server 系统,选择 vSphere Distributed Switch (VDS) 作为网络堆栈,然后单击下一步。
- 在主管位置页面上,选择 vSphere 区域部署以在三个 vSphere 区域上部署 主管。
- 输入新 主管 的名称。
- 选择创建用于部署 主管 的 vSphere 区域的数据中心。
- 从兼容的 vSphere 区域列表中,选择三个区域。
- 单击下一步。
- 在存储页面上,配置用于放置控制平面虚拟机的存储。
选项 描述 控制平面节点
选择用于放置控制平面虚拟机的存储策略。
- 在负载均衡器屏幕上,配置负载均衡器的设置。
- 输入负载均衡器的名称。
- 选择负载均衡器类型。
可以从 NSX Advanced Load Balancer 和 HAProxy 中进行选择。
- 配置负载均衡器的设置
-
为 NSX Advanced Load Balancer 输入以下设置:
选项
描述
名称 输入 NSX Advanced Load Balancer 的名称。
NSX Advanced Load Balancer 控制器端点 NSX Advanced Load Balancer 控制器的 IP 地址。
默认端口为
443
。用户名 使用 NSX Advanced Load Balancer 配置的用户名。您可以使用此用户名访问控制器。
密码 用户名对应的密码。
服务器证书 控制器使用的证书。
您可以提供在配置期间分配的证书。
有关详细信息,请参见将证书分配给控制器。
云名称 输入您设置的自定义云的名称。请注意,云名称区分大小写。 要使用 Default-Cloud,请将此字段留空。
有关详细信息,请参见配置控制器。
-
输入 HAProxy 的以下设置:
选项
描述
HAProxy 负载均衡器控制器端点 HAProxy 数据平面 API 的 IP 地址和端口,它是 HAProxy 设备的管理 IP 地址。此组件可控制 HAProxy 服务器,并在 HAProxy 虚拟机内运行。
用户名 使用 HAProxy OVA 文件配置的用户名。您可以使用此名称向 HAProxy 数据平面 API 进行身份验证。
密码 用户名对应的密码。
虚拟 IP 范围 Tanzu Kubernetes 集群在工作负载网络中使用的 IP 地址范围。此 IP 范围来自在 HAProxy 设备部署期间配置的 CIDR 中定义的 IP 列表。您可以设置在 HAProxy 部署中配置的整个范围,但如果要创建多个 主管 并使用该 CIDR 范围中的 IP,也可以设置该 CIDR 的子集。此外,此范围不得与在此向导中为工作负载网络定义的 IP 范围重叠。该范围也不得与此工作负载网络上的任何 DHCP 范围重叠。
HAProxy 管理 TLS 证书 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
-
-
- 在管理网络屏幕上,配置将用于 Kubernetes 控制平面虚拟机的网络的参数。
- 选择网络模式。
- DHCP 网络。在此模式下,管理网络的所有 IP 地址(如控制平面虚拟机 Ip、浮动 IP、DNS 服务器、DNS、搜索域和 NTP 服务器)都将自动从 DHCP 服务器获取。要获取浮动 IP,必须将 DHCP 服务器配置为支持客户端标识符。在 DHCP 模式下,所有控制平面虚拟机都使用稳定的 DHCP 客户端标识符来获取 IP 地址。这些客户端标识符可用于为 DHCP 服务器上的控制平面虚拟机的 IP 设置静态 IP 分配,以确保它们不会发生更改。不支持更改控制平面虚拟机的 IP,也不支持浮动 IP。
您可以通过在这些设置的文本字段中输入值来覆盖从 DHCP 继承的某些设置。
选项 描述 网络 选择将处理 主管 管理流量的网络 浮动 IP 输入一个 IP 地址,该地址确定为 Kubernetes 控制平面虚拟机预留五个连续 IP 地址的起点,如下所示:
-
每个 Kubernetes 控制平面虚拟机一个 IP 地址。
-
一个 Kubernetes 控制平面虚拟机的浮动 IP 地址,作为管理网络的接口。具有分配的浮动 IP 地址的控制平面虚拟机用作所有三个 Kubernetes 控制平面虚拟机的主要虚拟机。浮动 IP 将移至作为 Kubernetes 集群中的 etcd 主节点的控制平面节点。这在出现网络分区时可提高可用性。
-
在一个 Kubernetes 控制平面虚拟机出现故障后,启动一个新的控制平面虚拟机来替代此关闭的虚拟机时用作缓冲区的 IP 地址。
DNS 服务器 输入环境中使用的 DNS 服务器的地址。如果 vCenter Server 系统已向 FQDN 注册,则必须输入在 vSphere 环境中使用的 DNS 服务器的 IP 地址,以便在 主管 中解析 FQDN。 DNS 搜索域 输入 DNS 在 Kubernetes 控制平面节点中搜索的域名(如 corp.local),以便 DNS 服务器解析这些域名。 NTP 服务器 输入环境中使用的 NTP 服务器的地址(如有)。 -
- 静态。手动输入管理网络的所有网络连接设置。
选项 描述 网络 选择将处理 主管 管理流量的网络 起始 IP 地址 输入一个 IP 地址,该地址确定为 Kubernetes 控制平面虚拟机预留五个连续 IP 地址的起点,如下所示:
-
每个 Kubernetes 控制平面虚拟机一个 IP 地址。
-
一个 Kubernetes 控制平面虚拟机的浮动 IP 地址,作为管理网络的接口。具有分配的浮动 IP 地址的控制平面虚拟机用作所有三个 Kubernetes 控制平面虚拟机的主要虚拟机。浮动 IP 将移至作为 Kubernetes 集群中的 etcd 主节点的控制平面节点。这在出现网络分区时可提高可用性。
-
在一个 Kubernetes 控制平面虚拟机出现故障后,启动一个新的控制平面虚拟机来替代此关闭的虚拟机时用作缓冲区的 IP 地址。
子网掩码 仅适用于静态 IP 配置。输入管理网络的子网掩码。 例如,
255.255.255.0
网关 输入管理网络的网关。 DNS 服务器 输入环境中使用的 DNS 服务器的地址。如果 vCenter Server 系统已向 FQDN 注册,则必须输入在 vSphere 环境中使用的 DNS 服务器的 IP 地址,以便在 主管 中解析 FQDN。 DNS 搜索域 输入 DNS 在 Kubernetes 控制平面节点中搜索的域名(如 corp.local),以便 DNS 服务器解析这些域名。 NTP 服务器 输入环境中使用的 NTP 服务器的地址(如有)。 -
- DHCP 网络。在此模式下,管理网络的所有 IP 地址(如控制平面虚拟机 Ip、浮动 IP、DNS 服务器、DNS、搜索域和 NTP 服务器)都将自动从 DHCP 服务器获取。要获取浮动 IP,必须将 DHCP 服务器配置为支持客户端标识符。在 DHCP 模式下,所有控制平面虚拟机都使用稳定的 DHCP 客户端标识符来获取 IP 地址。这些客户端标识符可用于为 DHCP 服务器上的控制平面虚拟机的 IP 设置静态 IP 分配,以确保它们不会发生更改。不支持更改控制平面虚拟机的 IP,也不支持浮动 IP。
- 单击下一步。
- 选择网络模式。
- 在工作负载网络页面中,输入将为 主管 上运行的 Kubernetes 工作负载处理网络连接流量的网络的设置。
注:
如果选择使用 DHCP 服务器为工作负载网络提供网络连接设置,则在完成 主管 配置后,将无法创建任何新的工作负载网络。
- 选择网络模式。
- DHCP 网络。在此网络模式下,工作负载网络的所有网络设置都通过 DHCP 获取。您也可以通过在以下设置的文本字段中输入值来覆盖从 DHCP 继承的某些设置:
选项 描述 Kubernetes 服务的内部网络 输入确定 Tanzu Kubernetes 集群中运行的服务的 IP 地址范围的 CIDR 注释。 端口组 选择将用作 主管 的主工作负载网络的端口组 主网络处理 Kubernetes 控制平面虚拟机的流量和 Kubernetes 工作负载流量。
您可以稍后分配一个不同的端口组用作每个命名空间的网络,具体取决于您的网络连接拓扑。通过这种方式,可以在 主管 中的命名空间之间提供第 2 层隔离。未分配不同端口组作为其网络的命名空间将使用主网络。Tanzu Kubernetes 集群仅使用分配给它们的部署命名空间的网络,如果未向该命名空间分配明确的网络,它们将使用主网络
网络名称 输入网络名称。 DNS 服务器 输入环境中使用的 DNS 服务器的 IP 地址(如有)。
例如,10.142.7.1。
输入 DNS 服务器的 IP 地址时,将在每个控制平面虚拟机上添加静态路由。这表示传输到 DNS 服务器的流量通过工作负载网络。
如果指定的 DNS 服务器在管理网络和工作负载网络之间共享,则在初始设置后,将通过工作负载网络路由控制平面虚拟机上的 DNS 查找。
NTP 服务器 输入环境中使用的 NTP 服务器的地址(如有)。 - 静态。手动配置工作负载网络设置
选项 描述 Kubernetes 服务的内部网络 输入确定 Tanzu Kubernetes 集群中运行的服务的 IP 地址范围的 CIDR 注释。 端口组 选择将用作 主管 的主工作负载网络的端口组 主网络处理 Kubernetes 控制平面虚拟机的流量和 Kubernetes 工作负载流量。
您可以稍后分配一个不同的端口组用作每个命名空间的网络,具体取决于您的网络连接拓扑。通过这种方式,可以在 主管 中的命名空间之间提供第 2 层隔离。未分配不同端口组作为其网络的命名空间将使用主网络。Tanzu Kubernetes 集群仅使用分配给它们的部署命名空间的网络,如果未向该命名空间分配明确的网络,它们将使用主网络
网络名称 输入网络名称。 IP 地址范围 输入用于分配 Kubernetes 控制平面虚拟机和工作负载的 IP 地址的 IP 范围。 此地址范围连接 主管 节点,并且在单个工作负载网络的情况下,还会连接 Tanzu Kuberentes 集群节点。对 HAProxy 使用默认配置时,此 IP 范围不得与负载均衡器 VIP 范围重叠。
子网掩码 输入子网掩码 IP 地址。 网关 输入主网络的网关。 NTP 服务器 输入环境中使用的 NTP 服务器的地址(如有)。 DNS 服务器 输入环境中使用的 DNS 服务器的 IP 地址(如有)。 例如,10.142.7.1。
- DHCP 网络。在此网络模式下,工作负载网络的所有网络设置都通过 DHCP 获取。您也可以通过在以下设置的文本字段中输入值来覆盖从 DHCP 继承的某些设置:
- 单击下一步。
- 选择网络模式。
- 在查看并确认页面中,向上滚动并查看当前配置的所有设置,并为 主管 部署设置高级设置。
选项 描述 主管控制平面大小 选择“为控制平面虚拟机选择大小”。控制平面虚拟机的大小决定了可以在 主管 上运行的工作负载数量。可以从以下选项中进行选择: - 微型 - 2 个 CPU,8 GB 内存,32 GB 存储
- 小型 - 4 个 CPU,16 GB 内存,32 GB 存储
- 中型 - 8 个 CPU,16 GB 内存、32 GB 存储
- 大型 - 16 个 CPU,32 GB 内存、32 GB 存储
注: 选择控制平面大小后,只能纵向扩展。无法纵向缩减到较小的大小。API 服务器 DNS 名称 (可选)输入将用于访问主管控制平面的 FQDN,而不是使用主管控制平面 IP 地址。输入的 FQDN 将嵌入到自动生成的证书中。通过对主管使用 FQDN,可以省略在负载均衡器证书中指定 IP 范围的步骤。 导出配置 导出包含已输入的 主管 配置值的 JSON 文件。 如果要重新部署 主管,或者要部署具有类似配置的新 主管,可以稍后修改并导入该文件。
重新部署 主管 时,导出 主管 配置可以节省在此向导中重新输入所有配置值所需的时间。
- 查看设置后,单击完成。
启用 主管将启动控制平面虚拟机和其他组件的创建和配置。
下一步做什么
要完成部署过程,主管 必须达到所需状态,即满足所有条件。成功启用 主管 后,其状态将从“正在配置”更改为“正在运行”。当 主管 处于“正在配置”状态时,将不断重试每个条件是否满足。如果未达到条件,则会重试该操作,直到成功。因此,达到的条件数量可能会反复变化,例如,可能先是达到 10 个条件 (共 16 个),然后变成达到 4 个条件 (共 16 个),依此类推。在极少数情况下,如果存在阻止达到所需状态的错误,状态可能会更改为“错误”。
有关部署错误以及如何对其进行故障排除的详细信息,请参见解决初始配置或升级过程中主管集群上的错误运行状况状态。
如果要尝试通过更改在向导中输入的配置值来重新部署 主管,请参见通过导入 JSON 配置文件部署 主管。