EKS-VPC网络规划
Amazon EKS 网络要求
在创建 Amazon EKS 集群时,必须确保所使用的 VPC 和子网满足特定的网络要求,以确保集群的正常运行和通信。以下是主要的要求和注意事项:
VPC 要求
IP 地址充足:
VPC 必须拥有足够的 IP 地址,以供集群、节点和其他 Kubernetes 资源使用。如果现有的 CIDR 块不足,可以通过关联其他无类别域间路由(CIDR)块来扩展 IP 地址范围。DNS 支持:
VPC 必须启用 DNS 主机名和 DNS 解析功能,否则节点将无法注册到集群。
子网要求
可用 IP 地址:
每个子网至少应有 6 个可用 IP 地址供 Amazon EKS 使用,建议至少有 16 个可用 IP 地址。子网类型:
可以使用公有或私有子网,但建议优先使用私有子网。公有子网的路由表包含指向互联网网关的路由,而私有子网则没有。可用区限制:
某些 AWS 区域的特定可用区不支持 Amazon EKS 集群的子网部署,例如:- 美国东部(弗吉尼亚北部)区域的
use1-az3
- 美国西部(加利福尼亚北部)区域的
usw1-az2
- 加拿大(中部)区域的
cac1-az3
在这些可用区中创建的子网不能用于 Amazon EKS 集群。
- 美国东部(弗吉尼亚北部)区域的
节点部署注意事项
子网选择:
节点和 Kubernetes 资源可以部署在创建集群时指定的子网中,也可以部署在未指定的子网中。但这些子网必须满足上述子网要求。公有子网节点:
如果将节点部署到公有子网,该子网必须自动分配公有 IPv4 地址或 IPv6 地址。如果使用的是私有子网且关联了 IPv6 CIDR 块,则该子网也必须自动分配 IPv6 地址。
共享子网注意事项
- VPC 共享:
可以使用 VPC 共享功能与同一 AWS Organizations 中的其他账户共享子网。在共享子网中创建 Amazon EKS 集群时,需要注意权限和资源的管理,确保集群的正常运行。
确保 VPC 和子网满足上述要求,有助于 Amazon EKS 集群的稳定运行和高效通信。
Amazon EKS VPC 子网标签建议
在使用 Amazon EKS 时,正确地为 VPC 和子网添加标签可以帮助集群识别哪些子网可用于 Kubernetes 的资源部署(如节点和负载均衡器)。以下是子网标签的建议:
公有子网标签
公有子网用于托管需要直接访问互联网的资源,例如负载均衡器或其他外部访问的服务。
必需标签
键 | 值 | 描述 |
---|---|---|
kubernetes.io/role/elb |
1 |
表示该子网适用于 Elastic Load Balancer。 |
kubernetes.io/cluster/<cluster-name> |
shared 或 owned |
标识该子网与哪个 Amazon EKS 集群关联。<cluster-name> 是集群的名称。 |
私有子网标签
私有子网用于托管需要隔离的资源,例如工作节点或不需要直接访问互联网的服务。
必需标签
键 | 值 | 描述 |
---|---|---|
kubernetes.io/role/internal-elb |
1 |
表示该子网适用于内部 Elastic Load Balancer。 |
kubernetes.io/cluster/<cluster-name> |
shared 或 owned |
标识该子网与哪个 Amazon EKS 集群关联。<cluster-name> 是集群的名称。 |
标签含义说明
**
kubernetes.io/role/elb
和kubernetes.io/role/internal-elb
**:
这些标签分别用于指定子网是否支持外部或内部的负载均衡器。EKS 会根据这些标签选择合适的子网部署负载均衡器。**
kubernetes.io/cluster/<cluster-name>
**:- 值为
owned
时,表示该子网由特定集群独占使用。 - 值为
shared
时,表示该子网可被多个集群共享。
- 值为
示例子网标签配置
公有子网示例
{
"kubernetes.io/role/elb": "1",
"kubernetes.io/cluster/my-eks-cluster": "shared"
}
[原文档链接](https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/network-reqs.html)