クラスター VPC に関する考慮事項 - Amazon EKS

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

クラスター VPC に関する考慮事項

Amazon EKS のクラスターの作成時には、使用するクラスターの VPC サブネットを指定します。Amazon EKS には、2 つ以上の アベイラビリティーゾーン にサブネットが必要です。パブリックサブネットとプライベートサブネットを含む VPC をお勧めします。これにより、Kubernetes がパブリックサブネットにパブリックロードバランサーを作成し、プライベートサブネットにあるノードで実行されているポッドへのトラフィックを負荷分散します。

クラスタを作成する場合は、ノードやロードバランサーなど、クラスタのリソースをホストするすべてのサブネットも指定します。

注記

インターネット向けのロードバランサーでは、クラスターにパブリックサブネットが必要です。デフォルトでは、ノードは Amazon EKS 起動時のクラスタイントロスペクションおよびノード登録用 API。アウトバウンドインターネットアクセスのないクラスターについては、「プライベートクラスター」を参照してください。

コンテナイメージをプルするには、 Amazon S3 および Amazon ECR API にアクセスする必要があります (およびその他 DockerHub などのコンテナレジストリなど) 。詳細については、以下を参照してください。 Amazon EKS セキュリティグループの考慮事項 および AWS IPアドレス範囲AWS General Reference.

クラスタの作成時に渡すサブネットは、 Amazon EKS コントロールプレーンからノードへの通信に使用されるネットワークインタフェースを配置します。

クラスターの作成時にパブリックサブネットまたはプライベートサブネットのみを指定することができますが、これらの設定にはいくつかの制限があります。

  • プライベートのみ: すべてがプライベートサブネットで実行され、Kubernetesはポッドのインターネットに面するロードバランサーを作成できません。

  • パブリックのみ: ノードを含め、すべてがパブリックサブネットで実行されます。

Amazon EKS は、ノードとの通信を容易にするために、プライベート サブネット内にネットワーク インタフェースを作成します。この通信チャネルは、 kubectl exec および kubectl logs 。クラスタの作成時に指定するセキュリティグループは、クラスタコントロールプレーン用に作成されたネットワークインタフェースに適用されます。

VPC は、DNS ホスト名と DNS 解決がサポートされている必要があります。そうしないと、ノードはクラスタに登録できません。詳細については、「Amazon VPC ユーザーガイド」の「VPC での DNS の使用」を参照してください。

VPC IP アドレス指定

ノードは、コントロールプレーンおよびその他のAWSサービスと通信できなければなりません。ノードがプライベート サブネットに配置されている場合は、次のいずれかが必要です。

  • へのサブネットのデフォルト ルートをセットアップします。 NATゲートウェイ. ノードにインターネット アクセスを提供するには、NAT ゲートウェイにパブリック IP アドレスを割り当てる必要があります。

  • サブネットに必要ないくつかの設定を構成し、 プライベートクラスター.

自己管理ノードがパブリックサブネットに展開されている場合、パブリックIPアドレスを自動割り当てるようにサブネットを構成する必要があります。それ以外の場合は、ノードインスタンスにパブリック IP アドレスを割り当てる必要があります。 起動済み. 管理対象ノードがパブリックサブネットに展開されている場合は、パブリックIPアドレスを自動割り当てるようにサブネットを構成する必要があります。パブリック IP アドレスが割り当てられていない場合、ノードにはパブリック IP アドレスが割り当てられないためです。次のコマンドを使用して、パブリックサブネットがパブリック IP アドレスを自動割り当てするように設定されているかどうかを確認します。

aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=VPC-ID" | grep 'SubnetId\|MapPublicIpOnLaunch'

出力は次のとおりです。

"MapPublicIpOnLaunch": false, "SubnetId": "subnet-aaaaaaaaaaaaaaaaa", "MapPublicIpOnLaunch": false, "SubnetId": "subnet-bbbbbbbbbbbbbbbbb",

MapPublicIpOnLaunchfalse に設定されているサブネットの場合は、設定を true に変更します。

aws ec2 modify-subnet-attribute --map-public-ip-on-launch --subnet-id subnet-aaaaaaaaaaaaaaaaa
重要

使用した場合 Amazon EKS AWS CloudFormation テンプレート VPCをデプロイしてから 03/26/2020次に、パブリックサブネットの設定を変更する必要があります。

VPC 内で Amazon EKS クラスターに使用されるプライベート (RFC 1918) とパブリック (非 RFC 1918) の両方の CIDR 範囲を定義できます。詳細については、以下を参照してください。 VPCへのIPv4 CIDRブロックの追加Amazon VPC ユーザーガイド. VPCとサブネットのクラスレス・ドメイン間ルーティング(CIDR)ブロックを選択する場合、ブロックにすべての Amazon EC2 配備する予定のノードとポッド。各ポッドに少なくとも1つのIPアドレスが必要です。共有サービスVPCを使用してトランジットゲートウェイを実装することで、IPアドレスの使用を節約できます。詳細については、以下を参照してください。 共有サービス付き分離VPC および EKS VPC のルーティング可能な IP アドレス保護パターンをハイブリッド・ネットワークで実現します。

は Amazon EKS 制御面は4つまで作成 リクエスターが管理するネットワークインターフェース 各クラスタのVPCにインストールされます。指定するサブネットに、要求者が管理するネットワークインタフェースとポッドに十分なIPアドレスがあることを確認してください。

VPC のタグ付け要件

_を作成するとき Amazon EKS バージョン1.15より前のクラスタ、 Amazon EKS は、Kubernetesが検出できるように、指定したサブネットを含むVPCに次のようにタグ付けします。

キー

kubernetes.io/cluster/<cluster-name>

shared

  • キー - <cluster-name> 値が Amazon EKS クラスターの名前。

  • shared 値 を使用すると、複数のクラスタでこの VPC を使用できます。

1.15 クラスターでは、このタグは必須ではないか、Amazon EKS によって作成されません。すでにこのタグを持つ VPC に 1.15 クラスターをデプロイしても、タグは削除されません。

サブネットのタグ付け要件

Amazon EKS クラスターを作成すると、 Amazon EKS は Kubernetes が指定したサブネットを次の方法でタグ付けし、それらを Kubernetes で 検出できるようにします。

注記

クラスターがリソースに使用するすべてのサブネット (パブリックおよびプライベート) にはこのタグが必要です。

キー

kubernetes.io/cluster/<cluster-name>

shared

  • キー - <cluster-name> 値が Amazon EKS クラスタ。

  • shared 値 を使用すると、複数のクラスタでこのサブネットを使用できます。

内部ロードバランサー用のプライベートサブネットのタグ付け要件

プライベートサブネットは、Kubernetes が内部ロードバランサーにサブネットを使用できることを認識できるように、次のようにタグ付けする必要があります。03/26/2020 以降に Amazon EKS AWS CloudFormation テンプレートを使用して VPC を作成する場合、テンプレートによって作成されたサブネットは、作成時にタグ付けされます。Amazon EKS AWS CloudFormation VPC テンプレートの詳細については、「Amazon EKS クラスター用の VPC の作成」を参照してください。

キー

kubernetes.io/role/internal-elb

1

外部ロードバランサー用のパブリックサブネットタグ付けオプション

各アベイラビリティーゾーンでパブリックサブネットを選択するのではなく (サブネット ID の辞書順)、Kubernetes がそれらのサブネットのみを外部ロードバランサーに使用することを認識できるように、VPC のパブリックサブネットをタグ付けする必要があります。03/26/2020 以降に Amazon EKS AWS CloudFormation テンプレートを使用して VPC を作成する場合、テンプレートによって作成されたサブネットは、作成時にタグ付けされます。Amazon EKS AWS CloudFormation VPC テンプレートの詳細については、「Amazon EKS クラスター用の VPC の作成」を参照してください。

キー

kubernetes.io/role/elb

1