Amazon EKS
ユーザーガイド

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

Amazon EKS のクラスターの作成時には、使用するクラスターの Amazon VPC サブネットを指定します。Amazon EKS には、2 つ以上のアベイラビリティーゾーンにサブネットが必要です。ネットワークアーキテクチャとしては、ワーカーノードにプライベートサブネットを使用し、Kubernetes にパブリックサブネットを使用して、インターネット向けのロードバランサーを作成することをお勧めします。クラスターを作成するときに、クラスターのリソース (ワーカーノードやロードバランサーなど) をホストするすべてのサブネットを指定します。

注記

インターネット向けのロードバランサーでは、クラスターにパブリックサブネットが必要です。ワーカーノードには、クラスターの詳細分析と起動時のノード登録に対する Amazon EKS API に対するアウトバウンドのインターネットアクセスも必要です。コンテナイメージをプルするには、 Amazon S3 および Amazon ECR API にアクセスする必要があります (およびその他 DockerHub などのコンテナレジストリなど) 。詳細については、AWS General Referenceの「クラスターセキュリティグループの考慮事項」および「AWS IP アドレスの範囲」を参照してください。

Amazon EKS で制御プレーンに使用される Elastic Network Interface をワーカーノード通信に配置する場合のクラスター影響を作成する際に渡すサブネット。

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

  • プライベート専用: すべてプライベートサブネットで実行され、Kubernetes ではポッドのインターネット向けロードバランサーを作成することはできません。

  • パブリックのみ: すべてパブリックサブネットで実行されます (ワーカーノードを含む)。

Amazon EKS は、プライベートサブネットに Elastic Network Interface を作成し、ワーカーノードへの通信を円滑にします。この通信チャネルは、Kubernetes 機能 (kubectl exec および kubectl logs) をサポートしています。クラスターの作成時に指定するセキュリティグループは、クラスターコントロールプレーン用に作成された Elastic Network Interfaces に適用されます。

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

VPC IP アドレス指定

VPC 内で Amazon EKS クラスターに使用されるプライベート (RFC 1918) とパブリック (非 RFC 1918) の両方の CIDR 範囲を定義できます。詳細については、Amazon VPC ユーザーガイド の「VPC とサブネット」および「VPC での IP アドレス指定」を参照してください。

重要

Docker は Amazon EKS クラスターの 172.17.0.0/16 CIDR 範囲で実行されます。クラスターの VPC サブネットがこの範囲と重ならないようにすることをお勧めします。重なっている場合は、以下のエラーが発生します。

Error: : error upgrading connection: error dialing backend: dial tcp 172.17.nn.nn:10250: getsockopt: no route to host

VPC のタグ付け要件

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

キー

kubernetes.io/cluster/<cluster-name>

shared

  • Key: <cluster-name> 値は、Amazon EKS クラスター名と一致します。

  • : shared 値は、この VPC を使用することを複数のクラスターに許可します。

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

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

注記

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

キー

kubernetes.io/cluster/<cluster-name>

shared

  • Key: <cluster-name> 値は、Amazon EKS クラスターと一致します。

  • : shared 値は、複数のクラスターによるこのサブネットの使用を許可します。

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

VPC 内のプライベートサブネットを Kubernetes で内部ロードバランサーに使用できるよう、VPC 内のプライベートサブネットをタグ付ける必要があります。

キー

kubernetes.io/role/internal-elb

1

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

VPC のパブリックサブネットには、それに応じてタグが付けられる可能性があります。これにより、各アベイラビリティーゾーンでパブリックサブネットを選択するのではなく (サブネット ID の辞書順)、Kubernetes がそれらのサブネットのみを外部ロードバランサーに使用することを認識できるようにすることができます。

キー

kubernetes.io/role/elb

1