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> sharedowned 标识该子网与哪个 Amazon EKS 集群关联。<cluster-name> 是集群的名称。

私有子网标签

私有子网用于托管需要隔离的资源,例如工作节点或不需要直接访问互联网的服务。

必需标签

描述
kubernetes.io/role/internal-elb 1 表示该子网适用于内部 Elastic Load Balancer。
kubernetes.io/cluster/<cluster-name> sharedowned 标识该子网与哪个 Amazon EKS 集群关联。<cluster-name> 是集群的名称。

标签含义说明

  • **kubernetes.io/role/elbkubernetes.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)