EKS ネットワーキング
概要
Amazon EKS ネットワーキングは、Kubernetes クラスターの通信を管理する中核コンポーネントです。このドキュメントでは、EKS ネットワーキングの基本概念、VPC 設定、Subnet 設計、Security Group 設定について説明します。
EKS ネットワーキングアーキテクチャ
EKS ネットワーキングアーキテクチャは、以下のコンポーネントで構成されます。
- VPC (Virtual Private Cloud): EKS クラスターが稼働する分離されたネットワーク環境
- Subnets: VPC 内の IP アドレス範囲を分割する単位
- Route Tables: ネットワークトラフィックの経路を決定するルールセット
- Internet Gateway: VPC とインターネット間の通信を可能にするコンポーネント
- NAT Gateway: Private Subnet 内のリソースがインターネットへアクセスできるようにするコンポーネント
- Security Groups: インスタンスレベルの仮想ファイアウォール
- Network ACLs: Subnet レベルの仮想ファイアウォール
- CNI (Container Network Interface): コンテナネットワーキングを管理するプラグイン
EKS ネットワーキングフロー
EKS クラスター内のネットワークトラフィックは次のように流れます。
- Pod-to-Pod Communication: 同一 Node または異なる Node 上の Pod 間の通信
- Pod-to-Service Communication: クラスター内の Pod と Service 間の通信
- Internal to External Cluster Communication: クラスター内部リソースと外部リソース間の通信
- Control Plane to Node Communication: EKS Control Plane と worker node 間の通信
EKS ネットワーキングコンポーネント間の関係
VPC の要件
EKS クラスター用の VPC は、次の要件を満たす必要があります。
- Subnets: 少なくとも 2 つの Availability Zone に Subnet が必要です
- IP Addresses: 十分な数の IP アドレスを提供する必要があります
- DNS Hostnames: DNS hostname と DNS resolution を有効にする必要があります
- Internet Access: Node はインターネットにアクセスできる必要があります(NAT Gateway または Internet Gateway 経由)
VPC CIDR の計画
VPC CIDR block を計画する際の考慮事項:
- Cluster Size: 想定される Node と Pod の数
- IP Address Requirements: 各 Node と Pod に必要な IP アドレス数
- Future Expansion: 将来の拡張のための余裕
- Integration with Existing Networks: 既存ネットワークとの重複回避
一般的な VPC CIDR block のサイズ:
- 小規模クラスター: /24(256 IP アドレス)
- 中規模クラスター: /20(4,096 IP アドレス)
- 大規模クラスター: /16(65,536 IP アドレス)
Subnet 設計
EKS クラスターの Subnet 設計におけるベストプラクティス:
- Public Subnets: Internet Gateway に直接接続される Subnet
- 用途: Public Load Balancer、NAT Gateway、bastion host
- 一般的なサイズ: /24(256 IP アドレス)
- Private Subnets: Internet Gateway に直接接続されない Subnet
- 用途: EKS worker node、Internal Load Balancer
- 一般的なサイズ: /22(1,024 IP アドレス)
- Availability Zone Distribution: 複数の Availability Zone に Subnet を分散
- 少なくとも 2 つの Availability Zone を使用
- 各 Availability Zone に Public Subnet と Private Subnet を配置
Subnet 設計例:
| Subnet Type | Availability Zone | CIDR Block | Use |
|---|---|---|---|
| Public | us-west-2a | 10.0.0.0/24 | Load balancers, NAT gateways |
| Public | us-west-2b | 10.0.1.0/24 | Load balancers, NAT gateways |
| Private | us-west-2a | 10.0.2.0/22 | EKS worker nodes |
| Private | us-west-2b | 10.0.6.0/22 | EKS worker nodes |
Subnet タグ
EKS は、Subnet 上の特定のタグを使用してリソースを自動検出します。
- Public Subnet タグ:
kubernetes.io/role/elb: internet-facing Load Balancer で使用するには、値を1に設定しますkubernetes.io/cluster/<cluster-name>: 値をsharedまたはownedに設定します
- Private Subnet タグ:
kubernetes.io/role/internal-elb: Internal Load Balancer で使用するには、値を1に設定しますkubernetes.io/cluster/<cluster-name>: 値をsharedまたはownedに設定します
例:
bash
aws ec2 create-tags \
--resources subnet-xxxxxxxxxxxxxxxxx \
--tags Key=kubernetes.io/cluster/my-cluster,Value=shared Key=kubernetes.io/role/elb,Value=1Security Group 設定
EKS クラスターには、主に 2 つの Security Group があります。
- Cluster Security Group (Control Plane):
- インバウンドルール:
- 443/TCP: worker node の Security Group からのトラフィックを許可
- アウトバウンドルール:
- 1025-65535/TCP: worker node の Security Group へのトラフィックを許可
- インバウンドルール:
- Node Security Group (Worker Nodes):
- インバウンドルール:
- 443/TCP: Cluster Security Group からのトラフィックを許可
- 1025-65535/TCP: Cluster Security Group からのトラフィックを許可
- ALL: 同一 Security Group 内のトラフィックを許可
- アウトバウンドルール:
- ALL: すべての宛先へのトラフィックを許可
- インバウンドルール:
まとめ
このドキュメントでは、EKS ネットワーキングの基本概念と VPC 設定について学びました。次のドキュメントでは、Service、Load Balancing、Network Policy など、より高度なネットワーキングトピックを扱います。
クイズ
この章で学んだ内容を確認するには、EKS Networking - Part 1 クイズに挑戦してください。







