當與 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 現在放置在不同的網路中。