Amazon Web Services ブログ

EKS マネージドノードグループの IP 割り当てに対する今後の変更

Amazon EKS を使用する場合、すべてのノードは、EKS がホストする Kubernetes クラスターと、Amazon Elastic Container Registry (ECR) や Amazon S3 などの他の AWS API に接続できる必要があります。ノードはプライベートサブネットまたはパブリックサブネットで実行できます。プライベートサブネットの場合、このトラフィックは通常、AWS PrivateLink 接続を経由して、VPC または NAT ゲートウェイ内のエンドポイントに到達し、VPC の外部のエンドポイントに到達します。パブリックサブネットの場合、VPC の外部の API エンドポイントに到達するには、ノードにパブリック IP が割り当てられている必要があります。

現在、EKS マネージドノードグループは、起動するすべてのノードにパブリック IP アドレスを自動的に割り当てます。EC2 インスタンスまたは起動テンプレートで AssociatePublicIpAddress フラグを使用して、パブリック IP アドレスが割り当てられると、サブネットの設定が上書きされます。つまり、VPC がパブリックサブネットとプライベートサブネットの両方、またはプライベート専用サブネットアーキテクチャで設定されている場合でも、パブリック IP は依然としてプライベートサブネットでインスタンスを作成するノードに割り当てられます。

2020 年 4 月 20 日よりマネージドノードグループの動作が更新され、パブリック IP がノードに割り当てられなくなります。この日以降、パブリック IP の割り当ては、ノードがインスタンスを作成するサブネット設定を介して制御する必要があります。

この変更は 4 月 20 日以降に作成した新しいマネージドノードグループにのみ影響し、既存のマネージドノードグループの動作には変更はありません

パブリックサブネットの設定を確認しましょう。

パブリックサブネットでマネージドノードグループを使用している場合、この変更により、新しいノードグループの新しいノードがクラスターに接続できなくなる可能性があります (パブリックサブネットの mapPublicIpOnLaunchTRUE に設定されていない場合)。4 月 20 日より前に、サブネットの設定をチェックし、mapPublicIpOnLaunchTRUE に更新して、問題がないことを確認してください。

VPC のサブネット設定を確認するには、次のコマンドを実行します。
$ aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=<VPC-ID>" | grep 'MapPublicIpOnLaunch\|SubnetId\|VpcId\|State'

出力:

$ aws ec2 describe-subnets     \
  --filters "Name=vpc-id,Values=vpc-0a78a1eac2c6f1c97" | grep 'MapPublicIpOnLaunch\|SubnetId\|VpcId\|State'
  
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-077ef53ee69f8a96c",
            "VpcId": "vpc-0a78a1eac2c6f1c97",
            
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-00bbcb7727a6e480a",
            "VpcId": "vpc-0a78a1eac2c6f1c97",
            
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-0b53021b40ff722f3",
            "VpcId": "vpc-0a78a1eac2c6f1c97",
            
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-0c1c2cc106c3fa4e2",
            "VpcId": "vpc-0a78a1eac2c6f1c97",
            
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-067f724fbaf58996c",
            "VpcId": "vpc-0a78a1eac2c6f1c97",
            
            "MapPublicIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-041c3fe623abcb488",
            "VpcId": "vpc-0a78a1eac2c6f1c97",

サブネット設定を更新するには、AWS コンソールを使用するか、CFN テンプレートを更新すれば、mapPublicIpOnLaunch フラグを手動で TRUE に変更できます。

EKS ノードと VPC CloudFormation テンプレートの変更

AWS が EKS VPC とノー​​ド CloudFormation テンプレートを更新しているのは、この切り替えを簡単にするためです。 以前は、Amazon EKS では、サブネットではなく EC2 設定を介してパブリック IP アドレスをワーカーノードに割り当てる AWS CloudFormation テンプレートを販売していました。

本日より、パブリックサブネットのサブネットでパブリック IP 割り当てを設定する更新済み AWS CloudFormation テンプレートをローンチし、ノー​​ドグループテンプレートからパブリック IP 割り当てを削除します

新しい AWS CloudFormation VPC とセルフマネージドワーカーノードテンプレートは AssociatePublicIpAddressフラグを設定せず、パブリックサブネットは mapPublicIpOnLaunch フラグを TRUE に設定します。

これらの変更に合わせて、eksctl も今後数週間以内に更新する予定です。EC2 設定ではなくサブネット (適切な場合) を介して、今後すべてのクラスターがパブリック IP を割り当てるようにしていくことを目指しています。

新しい VPC テンプレートは EKS ドキュメントに記載されています。

まとめ

マネージドノードグループとパブリックサブネットをご使用の場合は、サブネット設定を更新して、4 月 20 日までに起動時にパブリック IP をマッピングするようにしてください。GitHub roadmap で、マネージドノードグループの更新の進捗状況を追跡できます。

EKS クラスターのネットワーク設定と IP 割り当ての詳細については、ワーカーノードのクラスターネットワークに関するブログをご覧ください。

Nate