外部ソースネットワークアドレス変換 (SNAT) - Amazon EKS

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

外部ソースネットワークアドレス変換 (SNAT)

VPC 内の通信 (ポッドからポッドなど) は、プライベート IP アドレス間で直接行われ、ソースネットワークアドレス変換 (SNAT) を必要としません。トラフィックが VPC 外のアドレス宛てである場合、Kubernetes の Amazon VPC CNI プラグインは、デフォルトでは、各ポッドのプライベート IP アドレスを、ポッドが実行されている ノードのプライマリAmazon EC2ネットワークインターフェイス (ネットワークインターフェイス) に割り当てられたプライマリプライベートプライベート IP アドレスに変換します。SNAT:

  • ポッドがインターネットと双方向に通信できるようにします。ノードはパブリックサブネットにあり、そのプライマリネットワークインターフェイスのプライマリプライベート IP アドレスに、パブリック IP アドレスまたは Elastic IP アドレスが割り当てられている必要があります。以下の図に示すように、トラフィックはパブリック IP アドレスまたは Elastic IP アドレスとの間で変換され、インターネットゲートウェイによってインターネットとの間でルーティングされます。

    インターネットゲートウェイは、ポッドのプライマリプライベート IP アドレスと、ポッドの Amazon EC2 インスタンスノードのプライマリネットワークインターフェイスに割り当てられたパブリック IP アドレスまたは Elastic IP アドレスとの間でのみ変換できるため、SNAT が必要です。

  • 他のプライベート IP アドレススペース (VPC ピア接続Transit VPCDirect Connect など) のデバイスが、Amazon EC2 インスタンスノードのプライマリネットワークインターフェイスのプライマリプライベート IP アドレスが割り当てられていないポッドに直接通信しないようにします。

他のプライベート IP アドレススペース内のインターネットまたはデバイスが通信する必要のあるポッドが、ポッドが実行されている Amazon EC2 インスタンスノードのプライマリネットワークインターフェイスに割り当てられたプライマリプライベート IP アドレスが割り当てられていない場合は、以下の操作を行います。

  • ノードは、パブリックサブネットの NAT デバイスへのルートを持つプライベートサブネットにデプロイする必要があります。

  • 次のコマンドを使用して、CNI プラグイン aws-node DaemonSet で外部 SNAT を有効にする必要があります。

    kubectl set env daemonset -n kube-system aws-node AWS_VPC_K8S_CNI_EXTERNALSNAT=true

外部 SNAT が有効になると、CNI プラグインはポッドのプライベート IP アドレスを、トラフィックが VPC 外のアドレス宛てである場合にポッドが実行されている Amazon EC2 インスタンスノードのプライマリネットワークインターフェイスに割り当てられたプライマリプライベート IP アドレスに変換しません。以下の図に示すように、ポッドからインターネットへのトラフィックは、NAT デバイスのパブリック IP アドレスとの間で外部的に変換され、インターネットゲートウェイによってインターネットとの間でルーティングされます。