View a markdown version of this page

Amazon EKS Hybrid Nodes ゲートウェイ - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

Amazon EKS Hybrid Nodes ゲートウェイ

Amazon EKS Hybrid Nodes ゲートウェイは、Amazon EKS クラスター VPC と EKS Hybrid Nodes で実行されている Kubernetes ポッド間のネットワークを自動化します。ゲートウェイにより、オンプレミスのポッドネットワークを VPC からルーティング可能にしたり、ネットワークインフラストラクチャの変更を調整したりする必要がなくなります。VPC の EC2 ベースのゲートウェイノードとオンプレミス環境の Cilium マネージドハイブリッドノードの間に VXLAN トンネルを作成し、トラフィックが正しいゲートウェイインスタンスに到達するように VPC ルートテーブルエントリを自動的に維持します。

ユースケース

Hybrid Nodes ゲートウェイは、VPC とオンプレミス環境間の以下のトラフィックフローを有効にします。

  • コントロールプレーンからウェブフックへの通信 — Kubernetes API サーバーは、ハイブリッドノードで実行されているウェブフックエンドポイントに到達できます。ゲートウェイがない場合、ハイブリッドノードのウェブフックは、オンプレミス環境でポッド CIDR をルーティング可能にしない限り、コントロールプレーンからアクセスできません。

  • クラウドとオンプレミス間のポッド間トラフィック — VPC の EC2 ノードで実行されているポッドは、ハイブリッドノードで実行されているポッドと直接通信できます。その逆も同様です。

  • ハイブリッドポッドへの AWS サービス接続 — Application Load Balancer、Network Load Balancer、Amazon Managed Service for Prometheus などの AWS サービスは、ハイブリッドノードで実行されているポッドに到達できます。

アーキテクチャ

2 つのゲートウェイポッドは、ラベル付き EC2 ノードでデプロイとして実行されます。Kubernetes リースベースのリーダー選出により、アクティブなポッドが決まります。どちらのポッドも起動時に VXLAN インターフェイスを作成し、CiliumNode オブジェクトを監視するノード調整を実行するため、スタンバイは常にフェイルオーバー時に 3~5 秒以内にトラフィックを転送する準備ができています。リーダー固有のアクション (VPC ルートテーブルの更新と CiliumVTEPConfig 管理) のみが、リーダーが変わったときに転送されます。

仕組み

Hybrid Nodes ゲートウェイは、以下の 4 つのメカニズムを使用して接続を有効にします。

VXLAN トンネリング — ゲートウェイは、UDP ポート 8472 (Cilium のデフォルト) に VNI 2 を持つ VXLAN インターフェイス (hybrid_vxlan0) を作成します。VXLAN インターフェイスで FDB エントリ、ARP エントリ、ルートをプログラミングすることで、各ハイブリッドノードへのトンネルを確立します。ノードコントローラーは CiliumNode オブジェクトを監視し、ハイブリッドノードがクラスターに参加またはクラスターを離れるとトンネルを自動的に追加または削除します。

VPC ルートテーブル管理 — ゲートウェイがリーダーになると、指定された VPC ルートテーブルでルートを作成または置き換えます。各ルートはハイブリッドポッド CIDR をリーダーのプライマリ ENI を指すため、ハイブリッドポッド宛ての VPC トラフィックはアクティブなゲートウェイインスタンスに転送されます。

Cilium VTEP 統合 — ゲートウェイは、ハイブリッドノード上の Cilium エージェントに VPC バウンドトラフィックの送信先を指定する CiliumVTEPConfig カスタムリソースを作成します。設定には、トンネルエンドポイントとしてリーダーのノード IP と VXLAN インターフェイス MAC アドレスが含まれます。ハイブリッドポッドが VPC アドレスにトラフィックを送信すると、Cilium はそのトラフィックを VXLAN パケットにカプセル化し、ゲートウェイに送信します。

リーダー選出 — ゲートウェイはアクティブスタンバイモデルで Kubernetes リースベースのリーダー選出を使用します。2 つのゲートウェイポッドは、ポッドアンチアフィニティによって強制される個別のノードで実行されます。どちらのポッドも起動時に VXLAN インターフェイスを作成し、すべてのハイブリッドノードの VTEP エントリを維持するノード調整を実行します。リーダーが VPC ルートテーブルの更新と Cilium VTEP 設定を実行します。リーダーが失敗した場合、スタンバイはリースの有効期限を検出し、リースを取得し、リーダーセットアップシーケンスを実行します。予想されるフェイルオーバー時間は、約 3~5 秒です。

デプロイモデル

Hybrid Nodes ゲートウェイは VPC の EC2 インスタンスで実行され、Helm チャートを使用してデプロイされます。ゲートウェイは、以下のデプロイターゲットをサポートしています。

  • EKS Auto Mode — 正しいラベル、テイント、送信元/送信先チェック設定を使用してゲートウェイノードを自動的にプロビジョニングする NodePoolNodeClass を作成します。これは推奨設定です。

  • EKS マネージド型ノードグループ — ゲートウェイラベル、テイント、送信元/送信先チェックを無効にした専用のマネージド型ノードグループを作成し、Helm 値で autoMode.enabled=false を設定します。

すべてのデプロイターゲットでは、高可用性のために少なくとも 2 つのノードが推奨されます。詳細については、「EKS Hybrid Nodes ゲートウェイの使用を開始する」を参照してください。

料金

Amazon EKS Hybrid Nodes ゲートウェイには追加料金はかかりませんが、該当する場合は EC2 インスタンスや EKS Auto Mode 管理料金など、ゲートウェイを実行するためのインフラストラクチャコストが課金されます。詳細については「Amazon EKS の料金」を参照してください。

リージョンの可用性

Amazon EKS Hybrid Nodes ゲートウェイは、中国リージョンを除く、EKS Hybrid Nodes が利用可能なすべての AWS リージョンで使用できます。現在サポートされているリージョンのリストについては、「Amazon EKS Hybrid Nodes の概要」を参照してください。

オープンソース

Amazon EKS Hybrid Nodes ゲートウェイコードベースはオープンソースです。ソースコードを表示したり、問題を報告したり、GitHub リポジトリに貢献したりできます。

制約事項と考慮事項

Hybrid Nodes ゲートウェイをデプロイする前に、以下の点を考慮してください。

  • トラフィックの暗号化なし — ゲートウェイによって作成された VXLAN トンネルはトラフィックを暗号化しません。VPC とオンプレミス環境間の転送中に暗号化が必要な場合は、MACsec を使用した AWS Direct Connect や VPN 接続などの暗号化されたトランスポートを使用します。詳細については、「Amazon EKS とは」を参照してください。

  • 単一クラスター — 各ゲートウェイデプロイは、単一の EKS クラスターを提供します。ハイブリッドノードを持つクラスターが複数ある場合は、クラスターごとに個別のゲートウェイをデプロイします。

  • Cilium VTEP が必要 — ゲートウェイでは、ハイブリッドノードで VTEP サポートが有効になっている Cilium CNI の EKS バージョンが必要です。他の CNI プラグインはサポートされていません。

次のステップ