

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

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

# クラスター、Pod、サービスに対する IPv6 アドレスの説明
<a name="cni-ipv6"></a>

 **適用対象**: Amazon EC2 インスタンスを持つ Pod と Fargate Pod

Kubernetes のデフォルトでは、`IPv4` アドレスが Pod とサービスに割り当てられます。Pod とサービスに `IPv4` アドレスを割り当てる代わりに、`IPv6` アドレスを割り当てるようにクラスターを設定できます。Amazon EKS は、Kubernetes がサポートしていても、デュアルスタックのポッドまたはサービスをサポートしません。つまり、Pod とサービスに `IPv4` アドレスと `IPv6` アドレスの両方を割り当てることはできません。

そのクラスターに使用する IP ファミリーは、クラスターの作成時に選択します。クラスターの作成後は、ファミリーを変更できません。

Amazon EKS `IPv6` クラスターをデプロイするチュートリアルについては、「[Amazon EKS `IPv6` クラスターとマネージド Amazon Linux ノードをデプロイする](deploy-ipv6-cluster.md)」を参照してください。

この機能を使用する際の考慮事項を次に示します。

## `IPv6` の機能のサポート
<a name="_ipv6_feature_support"></a>
+  **Windows サポートなし**: Windows の Pod とサービスはサポートされていません。
+  **Nitro ベースの EC2 ノードが必要**: `IPv6` は、AWS Nitro ベースの Amazon EC2 または Fargate ノードでのみ使用が可能です。
+  **EC2 ノードおよび Fargate ノードがサポートされる**:`IPv6` は、Amazon EC2 ノードと Fargate ノードで [セキュリティグループを個別の Pod に割り当てる](security-groups-for-pods.md) とともに使用できます。
+  **Outposts はサポートされない**: `IPv6` は [AWS Outposts を使用して Amazon EKS をオンプレミスにデプロイする](eks-outposts.md) とともに使用できません。
+  **FSx for Lustre はサポートされない**: [Amazon FSx for Lustre で高性能なアプリケーションストレージを使用する](fsx-csi.md) はサポートされていません。
+  **カスタムネットワーキングはサポートされない**: IP アドレスの枯渇を緩和するために、これまで使用していた [カスタムネットワーキングを使用して代替サブネットに Pod をデプロイする](cni-custom-network.md) の代わりとして、`IPv6` を使用することができます。`IPv6` では、カスタムネットワーキングを使用することはできません。クラスターにおいて、ネットワークの分離用としてカスタムネットワーキングを使用する場合は、引き続き、`IPv4` ファミリーによるカスタムネットワーキングを使用する必要があります。

## IP アドレスの割り当て
<a name="_ip_address_assignments"></a>
+  **Kubernetes サービス**: Kubernetes サービスには `IPv6` アドレスのみが割り当てられます。これらには、IPv4 アドレスは割り当てられません。
+  **ポッド**: ポッドには IPv6 アドレスとホストローカル IPv4 アドレスが割り当てられます。ホストローカル IPv4 アドレスは、VPC CNI と連鎖されたホストローカル CNI プラグインを使用して割り当てられ、そのアドレスは Kubernetes コントロールプレーンに報告されません。これは、ポッドが別の Amazon VPC またはインターネット内の外部 IPv4 リソースと通信する必要がある場合にのみ使用されます。ホストローカル IPv4 アドレスは、ワーカーノードのプライマリ ENI のプライマリ IPv4 アドレスに (VPC CNI によって) SNAT されます。
+  **ポッドとサービス**: ポッドおよびサービスは `IPv4` アドレスではなく、`IPv6` アドレスのみを受け取ります。ポッドが外部 `IPv4` エンドポイントと通信する必要がある場合、ノード自体で NAT が使用されます。この組み込み NAT 機能により、[DNS64 および NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) が不要になります。パブリックインターネットアクセスを必要とするトラフィックの場合、ポッドのトラフィックはパブリック IP アドレスに変換されたソースネットワークアドレスになります。
+  **ルーティングアドレス**: ポッドが VPC の外部で通信する場合、元の `IPv6` アドレスは保持されます (ノードの `IPv6` アドレスに変換されない)。このトラフィックは、インターネットゲートウェイまたは Egress-Only のインターネットゲートウェイを介して直接ルーティングされます。
+  **ノード**: すべてのノードには、`IPv4` と `IPv6` のアドレスが割り当てられています。
+  **Fargate ポッド**: 各 Fargate Pod は、デプロイ先のサブネット用に指定された CIDR から、`IPv6` アドレスを受け取ります。Fargate Pod を実行するための基盤ハードウェアユニットは、そのユニットがデプロイされているサブネットに割り当てられている CIDR から、一意の `IPv4` および `IPv6` アドレスを取得します。

## EKS で `IPv6` を使用する方法
<a name="_how_to_use_ipv6_with_eks"></a>
+  **新しいクラスターを作成する**: 新しいクラスターを作成し、そのクラスターで `IPv6` ファミリーの使用を指定する必要があります。これより前のバージョンからクラスターを更新して、`IPv6` ファミリーを有効化することはできません。新しいクラスターを作成する手順については、「考慮事項」を参照してください。
+  **最新の VPC CNI を使用する**: Amazon VPC CNI バージョン `1.10.1` 以降をデプロイします。このバージョン以降がデフォルトでデプロイされます。アドオンのデプロイ後は、クラスター内のすべてのノードグループ内にあるすべてのノードを削除しない限り、Amazon VPC CNI アドオンを `1.10.1` より前のバージョンにダウングレードすることはできません。
+  **`IPv6` 用の VPC CNI を設定する**: Amazon EC2 ノードを使用する場合は、IP プレフィックスの委任と `IPv6` を使用して Amazon VPC CNI アドオンを設定する必要があります。クラスターの作成時に `IPv6` ファミリーを選択した場合は、バージョン `1.10.1` のアドオンが、この設定のデフォルトになります。これは、セルフマネージド型のアドオン、および Amazon EKS アドオンの両方に当てはまります。IP プレフィックス委任の詳細については、「[プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす](cni-increase-ip-addresses.md)」を参照してください。
+  **`IPv4` アドレスと `IPv6` アドレスを設定する**: クラスターを作成する際に指定する VPC とサブネットには、それらに割り当てられた `IPv6` CIDR ブロックが必要です。同時に、`IPv4` CIDR ブロックも割り当てられている必要があります。これは、`IPv6` のみを使用する場合でも、VPC が機能するには `IPv4` CIDR ブロックが必要になるためです。詳細については、「Amazon VPC ユーザーガイド」の「[IPv6 CIDR ブロックと VPC の関連付け](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#vpc-associate-ipv6-cidr)」を参照してください。
+  **IPv6 アドレスをノードに自動割り当てする:** ノードを作成する際は、`IPv6` アドレスを自動割り当てするように設定されたサブネットを指定する必要があります。指定していない場合、ノードをデプロイできません。自動割り当ての設定はデフォルトで無効になっています｡ 詳細については、「Amazon VPC ユーザーガイド」の「[サブネットのパブリック IPv6 アドレス属性を変更する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6)」を参照してください。
+  **ルートテーブルを設定して `IPv6` を使用する**: サブネットに割り当てられるルートテーブルには、`IPv6` アドレス用のルートが必要です。詳細については、「Amazon VPC ユーザーガイド」の「[既存の VPC を IPv4 から IPv6 に移行する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)」を参照してください。
+  **`IPv6` のセキュリティグループを設定する**: セキュリティグループは `IPv6` アドレスを許可する必要があります。詳細については、「Amazon VPC ユーザーガイド」の「[既存の VPC を IPv4 から IPv6 に移行する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)」を参照してください。
+  **ロードバランサーを設定する**: AWS Load Balancer Controller のバージョン `2.3.1` 以降を使用して、「[Application Load Balancer を使用してアプリケーションと HTTP トラフィックをルーティングする](alb-ingress.md)」を使用した HTTP アプリケーションのロードバランシング、または、「[Network Load Balancer を使用して TCP および UDP トラフィックをルーティングする](network-load-balancing.md)」を使用したネットワークトラフィックの `IPv6` Pod へのロードバランシングを行います。いずれの場合もインスタンスモードではなく IP モードを使用してください。詳細については、「[AWS Load Balancer Controller を使用してインターネットトラフィックをルーティングする](aws-load-balancer-controller.md)」を参照してください。
+  **`IPv6` IAM ポリシーを追加する**: ノード IAM または CNI IAM ロールには、`IPv6` のIAM ポリシーをアタッチする必要があります。上記 2 つの中では、CNI IAM ロールへのアタッチが推奨されます。詳細については、「[`IPv6` ファミリーを使用するクラスター用に IAM ポリシーを作成します](cni-iam-role.md#cni-iam-role-create-ipv6-policy)」および「[ステップ 1: Amazon VPC CNI plugin for Kubernetes の IAM ロールを作成する](cni-iam-role.md#cni-iam-role-create-role)」を参照してください。
+  **すべてのコンポーネントを評価する**: アプリケーション、Amazon EKS アドオン、および、`IPv6` クラスターのデプロイ前に統合した AWS サービスに関しては、包括的な評価を実施します。これにより、`IPv6` を使用した場合も、すべてが想定どおりに動作することを保証できます。