EKS 自動モードl での VPC ネットワーキングとロードバランシングの説明 - Amazon EKS

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

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

EKS 自動モードl での VPC ネットワーキングとロードバランシングの説明

このトピックではEKS 自動モードl で Virtual Private クラウド (VPC ネットワーキングおよびロードバランシング機能を設定する方法について説明します。EKS Auto Mode はほとんどのネットワークコンポーネントを自動的に管理しますが、NodeClass リソースとロードバランサーの注釈を使用してクラスターのネットワーキング設定の特定の側面をカスタマイズできます。

EKS 自動モードl を使用すると、AWS でクラスターの VPC Container Network Interface (CNI 設定とロードバランサーのプロビジョニングが管理されます。NodeClass オブジェクトを定義し、サービスリソースとイングレスリソースに特定の注釈を適用することで、EKS Auto Mode が提供する自動運用モデルを維持しながら、ネットワーキング動作に関与することができます。

ネットワーク機能

EKS Auto Mode には、ノードとポッドのネットワークを処理する新しいネットワーク機能があります。この機能は、NodeClass Kubernetes オブジェクトを作成することで設定できます。

以前の AWS VPC CNI の設定オプションは EKS Auto Mode には適用されません。

NodeClass を使用したネットワークの設定

EKS Auto Mode の NodeClass リソースを使用すると、ネットワーク機能の特定の側面をカスタマイズできます。NodeClass を使用すると、セキュリティグループ選択の指定、VPC サブネット間のノード配置の制御、SNAT ポリシーの設定、ネットワークポリシーの設定、ネットワークイベントのログ記録の有効化を行うことができます。このアプローチはEKS 自動モードl の自動運用モデルを維持しながら、ネットワークのカスタマイズで柔軟性が得られます。

NodeClass を使用して以下のことができます。

  • ノードのセキュリティグループを選択する

  • VPC サブネットにノードを配置する方法を制御する

  • ノード SNAT ポリシーを random または disabled に設定する

  • 以下を含む Kubernetes ネットワークポリシーを有効にする。

    • ネットワークポリシーを「デフォルトで拒否」または「デフォルトで許可」に設定する

    • ファイルへのネットワークイベントのログ記録を有効にする。

  • 異なるサブネットにポッドをアタッチして、ノードトラフィックからポッドトラフィックを分離する。

Amazon EKS ノードクラス の作成方法を参照してください。

考慮事項

EKS 自動モードl は以下をサポートしています:

  • EKS ネットワークポリシー。

  • Kubernetes ポッドの HostPort および HostNetwork オプション。

  • パブリックサブネットまたはプライベートサブネットのノードとポッド。

  • ノードでの DNS クエリキャッシュ。

EKS 自動モードl は以下をサポートしていません

  • ポッドあたりのセキュリティグループ (SGPP)。

  • ENIConfig のカスタムネットワーキング。ポッドを複数のサブネットに配置することも、ポッドのサブネット選択 を使用してノードトラフィックから排他的に分離することもできます。

  • ウォーム IP、ウォームプレフィックス、ウォーム ENI 設定。

  • 最小 IP ターゲット設定。

  • オープンソース AWS VPC CNI でサポートされているその他の設定。

  • conntrack タイマーのカスタマイズなどのネットワークポリシー設定 (デフォルトは 300 秒)。

  • CloudWatch へのネットワークイベントログのエクスポート。

ネットワークリソース管理

EKS Auto Mode では、NodeClass リソースのネットワーク設定をモニタリングすることで、プレフィックス、IP アドレス指定、ネットワークインターフェイス管理を処理します。このサービスでは、次のいくつかの主要なオペレーションが自動的に実行されます。

プレフィックスの委任

EKS 自動モードは、デフォルトでポッドネットワークにプレフィックス委任 (/28 プレフィックス) を使用し、IP リソースのウォームプールを事前定義されたとおりに維持し、スケジュールされたポッドの数に基づいてスケールします。ポッドサブネットの断片化が検出されると、自動モードはセカンダリ IP アドレス (/32) をプロビジョニングします。このデフォルトのポッドネットワークアルゴリズムにより、自動モードはインスタンスタイプごとにサポートされている ENI と IP の数に基づいてノードあたりの最大ポッド数を計算します (断片化の最悪のケースを想定)。インスタンスタイプあたりの ENI と IP の最大数の詳細については、「EC2 ユーザーガイド」の「ネットワークインターフェイスあたりの最大 IP アドレス数」を参照してください。新世代 (Nitro v6 以降) のインスタンスファミリーでは通常、インスタンスタイプあたりの ENI と IP の数が増加しており、自動モードはそれに応じて最大ポッド数の計算を調整します。

IPv6 クラスターの場合、プレフィックス委任のみが使用され、自動モードは常にノードあたりのポッド数を最大 110 に制限しています。

クールダウン管理

このサービスでは、使用されなくなったプレフィックスまたはセカンダリ IPv4 アドレスのクールダウンプールを実装します。クールダウン期間が終了すると、これらのリソースは VPC に解放されます。ただし、こうしたリソースは、クールダウン期間にポッドで再利用されると、クールダウンプールから復元されます。

IPv6 のサポート

IPv6 クラスターの EKS Auto Mode では、プライマリネットワークインターフェイスのノードごとに /80 IPv6 プレフィックスをプロビジョニングします。

また、すべてのネットワークインターフェイスの適切な管理とガベージコレクションを確実に行います。

負荷分散

EKS 自動モードl でプロビジョニングされた AWS 弾性ロードバランサー はサービスリソースとイングレスリソースの注釈を使用して設定します。

詳細については「IngressClass を作成して Application Load Balancer を設定する」または「サービス注釈を使用して Network Load Balancer を設定する」を参照してください。

EKS 自動モードl によるロードバランシングに関する考慮事項

  • デフォルトのターゲットモードは IP モードであり、インスタンスモードではありません。

  • EKS 自動モードl はネットワークロードバランサー のセキュリティグループモードのみをサポートします。

  • AWS はセルフマネージド AWS ロードバランサーコントローラー から EKS 自動モードl による管理へのロードバランサーの移行をサポートしていません。

  • TargetGroupBinding 仕様の networking.ingress.ipBlock フィールドはサポートされていません。

  • ワーカーノードがカスタムセキュリティグループ (eks-cluster-sg- 命名パターンではない) を使用している場合、クラスターロールには追加の IAM アクセス許可が必要です。デフォルトの EKS マネージドポリシーではEKS による eks-cluster-sg- という名前のセキュリティグループの変更のみを許可します。カスタムセキュリティグループを変更する許可がないと、EKS は ALB/NLB トラフィックがポッドに到達できるようにするのに必要な進入ルールを追加できません。

CoreDNS に関する考慮事項

EKS 自動モードは、クラスター内で DNS を解決する場合に、従来の CoreDNS デプロイを使用しません。代わりに、自動モードノードが、各ノードでシステムサービスとして直接実行される CoreDNS を使用します。従来のクラスターを自動モードに移行する場合、ワークロードを自動モードノードに移動したら、クラスターから CoreDNS デプロイを削除できます。

重要

自動モードノードと非自動モードノードの両方でクラスターを維持する場合は、CoreDNS デプロイを保持する必要があります。非自動モードノードは、自動モードが備えるノードレベルの DNS サービスにアクセスできないため、従来の CoreDNS ポッドがないと DNS を解決できません。