Tanzu Kubernetes Grid と統合すると、NSX ALB はエンドポイント VIP をクラスタに提供し、クラスタの制御プレーン ノードでロード バランシングを実行できます。この機能を使用すると、クラスタの API サーバ ポートとエンドポイント VIP ネットワークをカスタマイズすることもできます。
次の表に、NSX ALB と Kube-Vip でサポートされる機能の比較を示します。
NSX ALB | Kube-Vip | |
---|---|---|
IP アドレス管理のクラスタ エンドポイント 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 ネットワークで指定された固定 IP アドレス プールに VIP が存在することを確認します。
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 ネットワークで指定された固定 IP アドレス プールに VIP が存在することを確認します。
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 アドレスが、異なるネットワークに配置されるようになりました。