

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

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

# EKS 自動モードl での VPC ネットワーキングとロードバランシングの説明
<a name="auto-networking"></a>

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

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

## ネットワーク機能
<a name="_networking_capability"></a>

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

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

### `NodeClass` を使用したネットワークの設定
<a name="_configure_networking_with_a_nodeclass"></a>

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

`NodeClass` を使用して以下のことができます。
+ ノードのセキュリティグループを選択する
+ VPC サブネットにノードを配置する方法を制御する
+ ノード SNAT ポリシーを `random` または `disabled` に設定する 
+ 以下を含む Kubernetes *ネットワークポリシー*を有効にする。
  + ネットワークポリシーを「デフォルトで拒否」または「デフォルトで許可」に設定する
  + ファイルへのネットワークイベントのログ記録を有効にする。
+ 異なるサブネットにポッドをアタッチして、ノードトラフィックからポッドトラフィックを分離する。

[Amazon EKS ノードクラス の作成](create-node-class.md)方法を参照してください。

### 考慮事項
<a name="_considerations"></a>

EKS 自動モードl は以下をサポートしています：
+ EKS ネットワークポリシー。
+ Kubernetes ポッドの `HostPort` および `HostNetwork` オプション。
+ パブリックサブネットまたはプライベートサブネットのノードとポッド。
+ ノードでの DNS クエリキャッシュ。

EKS 自動モードl は以下をサポート**していません**：
+ ポッドあたりのセキュリティグループ (SGPP)。Auto Mode で個別のセキュリティグループをポッドトラフィックに適用するには、代わりに `NodeClass` で `podSecurityGroupSelectorTerms` を使用します。詳細については、「[ポッドのサブネットとセキュリティグループを分離する](create-node-class.md#pod-subnet-selector)」を参照してください。
+ `ENIConfig` のカスタムネットワーキング。ポッドを複数のサブネットに配置することも、[ポッドのサブネットとセキュリティグループを分離する](create-node-class.md#pod-subnet-selector) を使用してノードトラフィックから排他的に分離することもできます。
+ ウォーム IP、ウォームプレフィックス、ウォーム ENI 設定。
+ 最小 IP ターゲット設定。
+ オープンソース AWS VPC CNI でサポートされているその他の設定。
+ conntrack タイマーのカスタマイズなどのネットワークポリシー設定 (デフォルトは 300 秒)。
+ CloudWatch へのネットワークイベントログのエクスポート。

### ネットワークリソース管理
<a name="_network_resource_management"></a>

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

 **プレフィックスの委任** 

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

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

 **クールダウン管理** 

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

 **IPv6 のサポート** 

IPv6 クラスターの EKS Auto Mode では、プライマリネットワークインターフェイスのノードごとに `/80` IPv6 プレフィックスをプロビジョニングします。`podSubnetSelectorTerms` を使用する場合、プレフィックスは代わりにポッドサブネットのセカンダリネットワークインターフェイスに割り当てられます。

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

## 負荷分散
<a name="auto-lb-consider"></a>

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

詳細については「[IngressClass を作成して Application Load Balancer を設定する](auto-configure-alb.md)」または「[サービス注釈を使用して Network Load Balancer を設定する](auto-configure-nlb.md)」を参照してください。

### EKS 自動モードl によるロードバランシングに関する考慮事項
<a name="_considerations_for_load_balancing_with_eks_auto_mode"></a>
+ デフォルトのターゲットモードは IP モードであり、インスタンスモードではありません。
+ EKS 自動モードl はネットワークロードバランサー のセキュリティグループモードのみをサポートします。
+  AWS はセルフマネージド AWS ロードバランサーコントローラー から EKS 自動モードl による管理へのロードバランサーの移行をサポートしていません。
+ `TargetGroupBinding` 仕様の `networking.ingress.ipBlock` フィールドはサポートされていません。
+ ワーカーノードがカスタムセキュリティグループ (`eks-cluster-sg- ` 命名パターンではない) を使用している場合、クラスターロールには追加の IAM アクセス許可が必要です。デフォルトの EKS マネージドポリシーではEKS による `eks-cluster-sg-` という名前のセキュリティグループの変更のみを許可します。カスタムセキュリティグループを変更する許可がないと、EKS は ALB/NLB トラフィックがポッドに到達できるようにするのに必要な進入ルールを追加できません。

#### CoreDNS に関する考慮事項
<a name="dns-consider"></a>

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

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