このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
podsのアウトバウンドインターネットアクセスを有効にする
適用対象: Linux IPv4
Fargate ノード、Amazon EC2 インスタンスを持つ Linux ノード
IPv6
ファミリーを使用してクラスターをデプロイした場合、このトピックの情報はクラスターに適用されません。IPv6
アドレスがネットワーク変換されないからです。クラスターでの IPv6
使用の詳細については、「クラスター、pods、サービスに IPv6 アドレスを割り当てる」を参照してください。
デフォルトでは、クラスター内の各 Pod に、Pod がデプロイされた VPC に関連付けられた Classless Inter-Domain Routing (CIDR) ブロックから、プライベート IPv4
アドレスが割り当てられます。同じ VPC 内の Pods は、これらのプライベート IP アドレスをエンドポイントとして使用して相互に通信します。Pod が VPC に関連付けられている CIDR ブロック外の IPv4
アドレスと通信する場合、(LinuxIPv4
アドレスを、デフォルトで *、Pod が実行されているノードのプライマリ Elastic Network Interface のプライマリプライベート IPv4
アドレスに変換します。
注記
Windows ノードについては、他にも考慮すべき事項があります。デフォルトでは、Windows の VPC CNI プラグイン
この動作によって、次の現象が起こります。
-
Pods は、実行しているノードにパブリック IP アドレスまたは Elastic IP アドレスが割り当てられており、パブリックサブネット内にある場合にのみ、インターネットリソースと通信できます。パブリックサブネットに関連付けられているルートテーブルには、インターネットゲートウェイへのルートが含まれています。可能であれば、プライベートサブネットにノードをデプロイすることをお勧めします。
-
1.8.0
よりも古いバージョンのプラグインの場合、VPC ピアリング、トランジット VPC、または AWS Direct Connect を使用してクラスター VPC に接続されているネットワークまたは VPC 内にあるリソースは、セカンダリ Elastic Network Interface の背後にある Pods との通信を開始できません。ただし、Pods はこれらのリソースとの通信を開始し、リソースから応答を受け取ることができます。
ご使用の環境で次のいずれかが当てはまる場合は、次のコマンドを使用してデフォルト設定を変更してください。
-
VPC ピアリング、トランジット VPC、または AWS Direct Connect を使用してクラスター VPC に接続されているネットワークまたは VPC 内に、
IPv4
アドレスを使用して Pods との通信を開始する必要があるリソースがあり、プラグインのバージョンが1.8.0
よりも前です。 -
Pods がプライベートサブネットにあり、インターネットへのアウトバウンド通信を行う必要があります。サブネットには、NAT ゲートウェイへのルートがある。
kubectl set env daemonset -n kube-system aws-node AWS_VPC_K8S_CNI_EXTERNALSNAT=true
注記
AWS_VPC_K8S_CNI_EXTERNALSNAT
および AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS
CNI の設定変数は Windows ノードに適用されません。SNAT の無効化は Windows でサポートされていません。IPv4
CIDR のリストを SNAT から除外する場合は、Windows ブートストラップスクリプトで ExcludedSnatCIDRs
パラメータを指定して定義できます。このパラメータの使用に関する詳細については、「ブートストラップスクリプトの設定パラメータ」を参照してください。
ホストネットワーキング
*Pod's 仕様に hostNetwork=true
が含まれている場合 (デフォルトは false
)、その IP アドレスは別のアドレスに変換されません。これは、クラスター上で実行されている kube-proxy
と Amazon VPC CNI plugin for Kubernetes Pods の場合のデフォルトです。これらの Pods の場合、IP アドレスはノードのプライマリ IP アドレスと同じであるため、Pod's IP アドレスは変換されません。Pod's hostNetwork
の設定の詳細については、「Kubernetes API リファレンス」の「PodSpec v1 core