このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
クラスター、pods、サービスに IPv6 アドレスを割り当てる
適用対象: Amazon EC2 インスタンスと Fargate Podsを持つPods
デフォルトでは、Kubernetes は IPv4
アドレスを Pods と services に割り当てます。Pods と services に IPv4
アドレスを割り当てる代わりに、IPv6
アドレスを割り当てるようにクラスターを設定できます。Amazon EKS は、Kubernetes がバージョン 1.23
以降でサポートしていても、デュアルスタックの Pods または services をサポートしません。つまり、IPv4
アドレスと IPv6
アドレスの両方を Pods と services に割り当てることはできません。
そのクラスターに使用する IP ファミリーは、クラスターの作成時に選択します。クラスターの作成後は、ファミリーを変更できません。
考慮事項
この機能を使用する際の考慮事項を次に示します。
-
新しいクラスターを作成し、そのクラスターで
IPv6
ファミリーの使用を指定する必要があります。これより前のバージョンからクラスターを更新して、IPv6
ファミリーを有効化することはできません。新しいクラスターを作成する手順については、「考慮事項 」を参照してください。 -
クラスターにデプロイする Amazon VPC CNI アドオンには、バージョン
1.10.1
以降を使用する必要があります。このバージョン以降がデフォルトでデプロイされます。アドオンのデプロイ後は、クラスター内のすべてのノードグループ内にあるすべてのノードを削除しない限り、Amazon VPC CNI アドオンを1.10.1
より前のバージョンにダウングレードすることはできません。 -
Windows Pods および services はサポートされていません。
-
Amazon EC2 ノードを使用する場合は、IP プレフィックスの委任と
IPv6
を使用して Amazon VPC CNI アドオンを設定する必要があります。クラスターの作成時にIPv6
ファミリーを選択した場合は、バージョン1.10.1
のアドオンが、この設定のデフォルトになります。これは、セルフマネージド型のアドオン、および Amazon EKS アドオンの両方に当てはまります。IP プレフィックス委任の詳細については、「プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす」を参照してください。 -
クラスターを作成する際に指定する VPC とサブネットには、それらに割り当てられた
IPv6
CIDR ブロックが必要です。同時に、IPv4
CIDR ブロックも割り当てられている必要があります。これは、IPv6
のみを使用する場合でも、VPC が機能するにはIPv4
CIDR ブロックが必要になるためです。詳細については、「Amazon VPC ユーザーガイド」の「IPv6
CIDR ブロックと VPC の関連付け」を参照してください。 -
ノードを作成する際は、
IPv6
アドレスを自動割り当てするように設定されたサブネットを指定する必要があります。指定していない場合、ノードをデプロイできません。自動割り当ての設定はデフォルトで無効になっています。 詳細については、「Amazon VPC ユーザーガイド」の「Modify theIPv6
addressing attribute for your subnet」(サブネットの アドレス属性を変更する) を参照してください。 -
サブネットに割り当てられるルートテーブルには、
IPv6
アドレス用のルートが必要です。詳細については、「Amazon VPC ユーザーガイド」の「既存の VPC を IPv4 からIPv6
に移行する」を参照してください。 -
セキュリティグループでは
IPv6
アドレスの使用を許可する必要があります。詳細については、「Amazon VPC ユーザーガイド」の「既存の VPC を IPv4 からIPv6
に移行する」を参照してください。 -
IPv6
は、AWS Nitro ベースの Amazon EC2 または Fargate ノードでのみ使用が可能です。 -
IPv6
は、Amazon EC2 ノードと Fargate ノードで 個々の pods にセキュリティグループを割り当てる とともに使用できます。 -
IP アドレスの枯渇を緩和するために、これまで使用していたカスタムネットワーキングの代わりとして、
IPv6
を使用することができます。IPv6
では、カスタムネットワーキングを使用することはできません。クラスターにおいて、ネットワークの分離用としてカスタムネットワーキングを使用する場合は、引き続き、IPv4
ファミリーによるカスタムネットワーキングを使用する必要があります。 -
AWS Outposts に
IPv6
を使用することはできません。 -
Kubernetes サービスには IPv6 アドレスのみが割り当てられます。これらには、IPv4 アドレスは割り当てられません。
-
ポッドには IPv6 アドレスとホストローカル IPv4 アドレスが割り当てられます。ホストローカル IPv4 アドレスは、VPC CNI と連鎖されたホストローカル CNI プラグインを使用して割り当てられ、そのアドレスは Kubernetes コントロールプレーンに報告されません。これは、ポッドが別の Amazon VPC またはインターネット内の外部 IPv4 リソースと通信する必要がある場合にのみ使用されます。ホストローカル IPv4 アドレスは、ワーカーノードのプライマリ ENI のプライマリ IPv4 アドレスに (VPC CNI によって) SNAT されます。
-
Pods および services には、
IPv6
アドレスのみが割り当てられます。これらには、IPv4
アドレスは割り当てられません。Pods は、インスタンス自体の NAT を介してIPv4
エンドポイントとの通信が可能なため、DNS64 および NAT64 は必要となりません。トラフィックがパブリック IP アドレスを必要とする場合、そのトラフィックは、送信元ネットワークアドレスとしてパブリック IP に変換されます。 -
VPC の外部と通信する際の、送信元 Pod の
IPv6
アドレスは、送信元のネットワークアドレスがノードのIPv6
アドレスに変換されたものではありません。このルーティングは、インターネットゲートウェイ、または送信専用インターネットゲートウェイを使用して行われます。 -
すべてのノードには、
IPv4
とIPv6
のアドレスが割り当てられています。 -
FSx for Lustre を使用して高性能アプリケーションを保存する はサポートされていません。
-
IP モードでは、アプリケーションまたはネットワークからの
IPv6
Pods へのトラフィックを負荷分散するために、バージョン2.3.1
以降の AWS Load Balancer Controller が使用できますが、インスタンスモードでは使用できません。詳細については、「AWS Load Balancer Controller を使用してインターネットトラフィックをルーティングする」を参照してください。 -
ノード IAM または CNI IAM のロールには、
IPv6
のIAM ポリシーをアタッチする必要があります。上記 2 つの中では、CNI IAM ロールへのアタッチが推奨されます。詳細については、IPv6 ファミリーを使用するクラスター用に IAM ポリシーを作成します。およびステップ 1: Amazon VPC CNI plugin for Kubernetes IAM ロールを作成するを参照してください。 -
各 Fargate Pod は、デプロイ先のサブネット用に指定された CIDR から、
IPv6
アドレスを受け取ります。Fargate Pods を実行するための基盤ハードウェアユニットは、そのユニットがデプロイされているサブネットに割り当てられている CIDR から、一意のIPv4
およびIPv6
アドレスを取得します。 -
アプリケーション、Amazon EKS アドオン、および、
IPv6
クラスターのデプロイ前に統合した AWS のサービスに関しては、包括的な評価を実施することをお勧めします。これにより、IPv6
を使用した場合も、すべてが想定どおりに動作することを保証できます。 -
Amazon EC2 インスタンスメタデータサービスの
IPv6
エンドポイントの使用は、Amazon EKS ではサポートされていません。 -
IPv6
ファミリーを使用するクラスターでセルフマネージドノードグループを作成する場合、ユーザーデータには、ノードの起動時に実行されるbootstrap.sh
ファイルの次の BootstrapArguments
が含まれている必要があります。your-cidr
をクラスターの VPC のIPv6
CIDR 範囲に置き換えます。--ip-family ipv6 --service-ipv6-cidr
your-cidr
クラスターの
IPv6
CIDR
範囲がわからない場合は、次のコマンドで確認できます (AWS CLI バージョン2.4.9
以降が必要です)。aws eks describe-cluster --name
my-cluster
--query cluster.kubernetesNetworkConfig.serviceIpv6Cidr --output text