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

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

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

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

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

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

  • 他のプライベート IP アドレススペース (VPC ピアリングTransit VPC、Direct 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 アドレスとの間で外部的に変換され、インターネットゲートウェイによってインターネットとの間でルーティングされます。