このトピックでは、vSphere のスタンドアローン管理クラスタによってデプロイされる、Tanzu Kubernetes Grid (TKG) ワークロード クラスタでホストされるワークロードの L4 ロード バランサとして Kube-VIP を使用する方法について説明します。
注この機能は、サポートされていない「テクニカル プレビュー」状態です。「TKG の機能状態」を参照してください。
Kube-VIP は、外部ハードウェアやソフトウェアに依存することなく、制御プレーンおよび ServiceType LoadBalancer の Kubernetes サービスの両方の仮想 IP アドレスとロード バランサを Kubernetes クラスタに提供します。
TKG の以前のバージョンは、TKG 制御プレーンに仮想 IP アドレス サービスを提供するために、Kube-VIP をすでに使用しています。
注TKG は、Kube-VIP の
ExternalTrafficPolicy Localモードをサポートしません。
前提条件
Kube-VIP は、以下のクラスタでのみ LoadBalancer サービスとして構成できます。
AVI_CONTROL_PLANE_HA_PROVIDER = false) ワークロード クラスタ。LoadBalancer サービスとして使用することはできません。クラスタ内で Kube-VIP を LoadBalancer サービスとして使用するワークロード クラスタを作成する前には、ノード仮想マシンに割り当てる IP アドレスの範囲を割り当てる必要があります。LoadBalancer サービス自体の IP アドレスは、同じ範囲にする必要があります。
パラメータ
Kube-VIP をクラスベースのワークロード クラスタのロード バランサ サービスとして構成するには、クラスタ構成ファイルで次のように設定します。
KUBEVIP_LOADBALANCER_ENABLE
true に設定します。デフォルトの設定は false です。KUBEVIP_LOADBALANCER_IP_RANGES
LoadBalancer タイプのサービス IP アドレスに割り当てる重複しない IP アドレス範囲のリスト。例:10.0.0.1-10.0.0.23,10.0.2.1-10.0.2.24。KUBEVIP_LOADBALANCER_CIDRS
LoadBalancer タイプのサービス IP アドレスに割り当てる重複しない CIDR のリスト。例:10.0.0.0/24,10.0.2/24。KUBEVIP_LOADBALANCER_IP_RANGES または KUBEVIP_LOADBALANCER_CIDRS のいずれかが必要です。両方を設定すると、kube-vip-load-balancer コンポーネントは、設定された範囲で使用可能なアドレスがなくなった場合でも、KUBEVIP_LOADBALANCER_CIDRS から IP アドレスのみを割り当てます。
競合を回避するには、各クラスタの IP アドレス範囲が異なる必要があります。異なるクラスタの IP アドレス範囲と CIDR 範囲が重複しないようにする必要があります。
Kube-VIP をロード バランサとして使用するワークロード クラスタの場合、Kube-VIP CPI 構成の loadbalancerCIDRs または loadbalancerIPRanges の値を変更することで、Kube-VIP がトラフィックのバランスをとっている IP アドレス範囲を拡張できます。
注拡張できるのは Kube-VIP の範囲のみです。既存の IP アドレス範囲を縮小することはできません。
kubectl のコンテキストを管理クラスタに設定します。
kubectl config use-context my-mgmnt-cluster-admin@my-mgmnt-cluster
ターゲット クラスタの KubevipCPIConfig 構成を編集します。
kubectl edit kubevipcpiconfig CLUSTER-NAME -n CLUSTER-NAMESPACE
ここで、CLUSTER-NAME および CLUSTER-NAMESPACE は、Kube-VIP の範囲を拡張するワークロード クラスタの名前と名前空間です。
KubevipCPIConfig 仕様で、loadbalancerCIDRs または loadbalancerIPRanges の値を、IP アドレスのみを追加する方法で変更します。たとえば、loadbalancerCIDRs: 10.0.0.1/24 を次のいずれかに変更できます。
10.0.0.0/24,10.0.1.0/2410.0.0.0/16