与 Tanzu Kubernetes Grid 集成后,NSX ALB 可以为集群提供端点 VIP,并在集群的控制平面节点上执行负载均衡。此功能还允许您自定义 集群的 API 服务器端口和端点 VIP 网络。
下表比较了 NSX ALB 和 Kube-Vip 上支持的功能:
NSX ALB | Kube-Vip | |
---|---|---|
IPAM 的集群端点 VIP | 由 NSX ALB 提供 |
由客户手动管理 |
控制平面节点的负载均衡 | 流量将负载均衡到所有控制平面节点 |
流量将仅路由到主控制平面节点 |
API 服务器的端口 | 任何端口(默认为 6443) |
任何端口(默认为 6443) |
要将 NSX ALB 配置为管理集群中的集群端点 VIP 提供程序,请执行以下操作:
创建管理集群配置 YAML 文件,并在该文件中添加以下字段:
AVI_CONTROL_PLANE_HA_PROVIDER: true
如果要对端点 VIP 使用静态 IP 地址,请在文件中添加以下字段:
VSPHERE_CONTROL_PLANE_ENDPOINT: <IP-ADDRESS>
确保 VIP 存在于 VIP 网络中指定的静态 IP 池中。
如果要为 API 服务器指定端口,请在 文件中添加以下字段:
AVI_CONTROL_PLANE_HA_PROVIDER: true
CLUSTER_API_SERVER_PORT: <PORT-NUMBER>
注意管理集群及其工作负载集群将使用此端口连接到 API 服务器。
tanzu management-cluster create
命令创建管理集群。现在,NSX ALB 配置为管理集群的端点 VIP 提供程序。
要将 NSX ALB 配置为工作负载集群中的集群端点 VIP 提供程序,请执行以下操作:
创建工作负载集群配置 YAML 文件,并添加以下字段:
AVI_CONTROL_PLANE_HA_PROVIDER: true
如果要对端点 VIP 使用静态 IP 地址,请在文件中添加以下字段:
AVI_CONTROL_PLANE_HA_PROVIDER: true
VSPHERE_CONTROL_PLANE_ENDPOINT: <IP-ADDRESS>
确保 VIP 存在于 VIP 网络中指定的静态 IP 池中。
使用 tanzu cluster create
命令创建工作负载集群。
现在,NSX ALB 配置为工作负载集群的端点 VIP 提供程序。
如果要在 NSX ALB Essentials Edition 上使用此功能,请确保所使用的网络未配置任何防火墙或网络策略。如果已在网络上配置防火墙或网络策略,请部署具有自动网关功能的 NSX ALB Enterprise Edition 以使用此功能。
使用 NSX ALB 提供集群端点 VIP 时,您可以为集群端点和工作负载服务(负载均衡器和输入)外部 IP 自定义 VIP 网络。您可以将它们划分到不同的 VIP 网络,以提高安全性并满足其他网络拓扑要求。
下图介绍了为管理集群和工作负载集群配置单独的 VIP 网络时的网络拓扑:
要为管理集群和工作负载集群配置单独的 VIP 网络,请执行以下操作:
创建管理集群配置 YAML 文件,并在该文件中添加以下字段:
AVI_CONTROL_PLANE_HA_PROVIDER: true
# Network used to place workload clusters' services external IPs (load balancer & ingress services)
AVI_DATA_NETWORK:
AVI_DATA_NETWORK_CIDR:
# Network used to place workload clusters' endpoint VIPs
AVI_CONTROL_PLANE_NETWORK:
AVI_CONTROL_PLANE_NETWORK_CIDR:
# Network used to place management clusters' services external IPs (load balancer & ingress services)
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME:
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR:
# Network used to place management clusters' endpoint VIPs
AVI_MANAGEMENT_CLUSTER_CONTROL_PLANE_VIP_NETWORK_NAME:
AVI_MANAGEMENT_CLUSTER_CONTROL_PLANE_VIP_NETWORK_CIDR:
有关创建管理集群配置文件的详细信息,请参见创建管理集群配置文件。
使用 tanzu management-cluster create
命令创建管理集群。
集群的端点 VIP 和负载均衡器服务的外部 IP 现在放置在不同的网络中。
下图介绍了为不同的工作负载集群配置单独的 VIP 网络时的网络拓扑。
要为不同的工作负载集群配置单独的 VIP 网络,请执行以下操作:
创建 AKODeploymentConfig
CR 对象,如以下示例中所示:
apiVersion: networking.tkg.tanzu.vmware.com/v1alpha1
kind: AKODeploymentConfig
metadata:
name: install-ako-for-dev-cluster
spec:
adminCredentialRef:
name: avi-controller-credentials
namespace: tkg-system-networking
certificateAuthorityRef:
name: avi-controller-ca
namespace: tkg-system-networking
controller: 1.1.1.1
cloudName: Default-Cloud
serviceEngineGroup: Default-Group
clusterSelector: # match workload clusters with dev-cluster: "true" label
matchLabels:
dev-cluster: "true"
controlPlaneNetwork: # clusters' endpoint VIP come from this VIP network
cidr: 10.10.0.0/16
name: avi-dev-cp-network
dataNetwork: # clusters' services external IP come from this VIP network
cidr: 20.20.0.0/16
name: avi-dev-dp-network
在管理集群上应用更改:
kubectl --context=MGMT-CLUSTER-CONTEXT apply -f <FILE-NAME>
在工作负载集群配置 YAML 文件中,添加必填字段,如以下示例中所示:
AVI_CONTROL_PLANE_HA_PROVIDER: true
AVI_LABELS: '{"dev-cluster": "true"}'
使用 tanzu cluster create
命令创建工作负载集群。
集群的端点 VIP 和负载均衡器服务的外部 IP 现在放置在不同的网络中。