Dataplane V2 は、Kubernetes ネットワーキング用に最適化された GKE と GKE クラスタ用のデータプレーンです。このページでは、Dataplane V2 の機能と仕組みの概要を説明します。
はじめに
Dataplane V2 の特長は次のとおりです。
- GKE とすべての GKE クラスタ環境のネットワーキングで一貫したユーザー エクスペリエンス。Dataplane V2 をサポートする環境については、Dataplane V2 の可用性をご覧ください。
- ネットワーク アクティビティをリアルタイムで可視化。
- よりシンプルなアーキテクチャにより、クラスタの管理とトラブルシューティングが容易に。
Dataplane V2 は eBPF ノードと Linux ノードをベースにしており、Kubernetes 固有のメタデータを使用して、カーネル内でネットワーク パケットを柔軟かつ効率的に処理します。
Dataplane V2 のメリット
セキュリティ
Dataplane V2 を使用するクラスタでは、Kubernetes ネットワーク ポリシーが常に有効になっています。ネットワーク ポリシーを適用するために、Calico などのサードパーティ ソフトウェア アドオンをインストールして管理する必要はありません。
スケーラビリティ
Dataplane V2 は、大規模なクラスタでのルーティングを改善するように設計されています。kube-proxy または iptables は使用しません。
Operations
Dataplane V2 を使用してクラスタを作成すると、ネットワーク ポリシー ロギングが組み込まれます。Pod オブジェクトが接続を許可または拒否するタイミングを確認するには、クラスタでロギング CRD を構成します。
一貫性
Dataplane V2 は GKE と他の GKE クラスタ環境で利用可能であり、同じ機能を備えています。詳細については、Dataplane V2 の可用性をご覧ください。
Dataplane V2 の仕組み
パケットがノードに到達すると、カーネルにインストールされている eBPF プログラムによってパケットのルーティング方法と処理方法が決定されます。iptables を使用したパケット処理とは異なり、eBPF プログラムはパケット内で Kubernetes 固有のメタデータを使用できます。これにより、Dataplane V2 はカーネル内のネットワーク パケットを効果的に処理し、ロギングのためアノテーション付きのアクションをユーザー空間に報告できます。次の図は、Dataplane V2 を使用するノードを通過するパケットのパスを示しています。
ノード上の Dataplane V2 コントローラは anetd
と呼ばれます。anetd
は、各ノードに DaemonSet としてデプロイされ、eBPF の Kubernetes オブジェクトの解釈とネットワーク トポロジのプログラミングを行います。anetd
コントローラは、サービス ルーティング kube-proxy と、このプロキシが kube-system Namespace で行うルーティングに代わるものです。
GKE クラスタ上の Dataplane V2 はオーバーレイ ネットワーク モードで動作します。このモードでは、すべてのクラスタノードが Geneve カプセル化プロトコルを使用してトンネルのメッシュを形成します。コンテナ間のネットワーク トラフィックは、すべてこれらのトンネルを介して転送されます。このモデルの主な利点は、クラスタのノードが基盤となる AWS ネットワーク構成を認識する必要がないことです。
次のステップ
- GKE Multi-Cloud 上にネットワーク ポリシーを構成する。
- ネットワーク ポリシー ロギングを使用して、クラスタのネットワーク ポリシーによって Pod への接続が許可または拒否される時間を記録する。