このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「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 を解決できません。