LoadBalancer タイプの Kubernetes サービスを構成して、受信要求の送信元 IP アドレスに基づいてロード バランサ トラフィックを許可し、ローカル ポッド トラフィックのみを許可することができます。
最小要件
externalTrafficPolicy
および
LoadBalancerSourceRanges
機能を使用できます。
コンポーネント | 最小要件 | 詳細情報 |
---|---|---|
vCenter Server と ESXi | vSphere 7.0 Update 2 | リリース ノートを参照してください。 |
スーパーバイザー クラスタ | v1.19.1+vmware.2-vsc0.0.8-17610687 |
vSphere 名前空間の更新の実行による スーパーバイザー クラスタ の更新を参照してください。 |
ロード バランサ | NSX-T Data Center v3.1 |
vSphere with Tanzu のネットワークを参照してください。 |
Tanzu Kubernetes リリース | 最新の Tanzu Kubernetes リリースの 1 つ。 | 更新のための Tanzu Kubernetes クラスタ互換性の確認を参照してください。 |
ローカル トラフィック ポリシーと送信元 IP アドレス範囲のサポートについて
NSX-T Data Center ネットワークを使用している場合は、LoadBalancer タイプの Kubernetes サービスを構成して、外部トラフィック ポリシーとロード バランサの送信元 IP アドレス範囲を許可できます。externalTrafficPolicy
機能を使用すると、ポッド トラフィックをローカル ノードに制限できます。LoadBalancerSourceRange
を使用すると、許可またはブロックする送信元 IP アドレスを指定できます。
ローカル トラフィック専用のサービスの例
次のロード バランサ サービス仕様では、externalTrafficPolicy
パラメータを Local
に設定してロード バランサ インスタンスを構成します。その結果、ポッド トラフィックはローカル ポッドが実行されているノードにのみルーティングされます。
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
この機能は、新しい NSX-T 健全性チェック モニタを使用して動作します。NSX-T 管理の観点から、この機能の内部動作を認識することが重要です。
NSX-T 健全性チェック モニタは、LoadBalancer タイプのサービスに対応するサーバ プールに対して kube-proxy によって割り当てられた Kubernetes 健全性チェック NodePort を監視します。この NSX-T 健全性チェック モニタは、ターゲットの健全性チェック NodePort に HTTP GET 要求を送信します。実行中のローカル ポッドがない場合、ノード上の kube-proxy は HTTP ステータス コード 500 を返します。ローカル ポッドがないノードは、NSX-T によって「切断」とマークされ、NSX Manager にそのように表示されます。トラフィックは、ローカル ポッドが実行されているノードにのみルーティングされます。
送信元 IP アドレス範囲に基づいてトラフィックを許可するサービスの例
次のロード バランサ サービス仕様では、許可された送信元 IP アドレスの CIDR の配列を使用して loadBalancerSourceRanges
パラメータを構成します。これらの送信元 IP アドレス範囲から受信した要求のみが許可されます。その他の受信トラフィックはすべてドロップされます。
apiVersion: v1 kind: Service metadata: name: allow-based-on-source-IPs spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 loadBalancerSourceRanges: - 10.0.0.0/24 - 10.1.0.0/24 type: LoadBalancer