View a markdown version of this page

了解如何将 IPv6 地址分配给集群、容器组(pod)和服务 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

了解如何将 IPv6 地址分配给集群、容器组(pod)和服务

适用对象:使用 Amazon EC2 实例的容器组(pod)和 Fargate 容器组(pod)

默认情况下,Kubernetes 会将 IPv4 地址分配给容器组(pod)和服务。您可以将集群配置为向其分配 IPv6 地址,而不是将 IPv4 地址分配给容器组(pod)和服务。Amazon EKS 不支持双堆栈容器组(pod)或服务,即使 Kubernetes 支持也是如此。因此,您无法将 IPv4 和 IPv6 地址同时分配给容器组(pod)和服务。

创建集群时,您可以选择要用于集群的 IP 系列。集群在创建之后无法更改系列。

有关部署 Amazon EKS IPv6 集群的教程,请参阅部署 Amazon EKS IPv6 集群和 Amazon Linux 托管节点。

以下是使用该功能的注意事项:

IPv6 功能支持

IP 地址分配

  • Kubernetes 服务:只能为 Kubernetes 服务分配 IPv6 地址。系统不会为其分配 IPv4 地址。

  • 容器组(pod):将为容器组(pod)分配一个 IPv6 地址和一个主机本地 IPv4 地址。主机本地 IPv4 地址是使用与 VPC CNI 关联的主机本地 CNI 插件分配的,并且该地址不会报告给 Kubernetes 控制面板。仅在有容器组需要与其他 Amazon VPC 或互联网中的外部 IPv4 资源通信时才会使用该地址。主机本地 IPv4 地址将(由 VPC CNI)SNAT 转换为 Worker 节点的主 ENI 的主 IPv4 地址。

  • 容器组和服务:容器组和服务只接收 IPv6 地址,不接收 IPv4 地址。当容器组需要与外部 IPv4 端点通信时,它们会在节点本身上使用 NAT。这种内置的 NAT 功能无需 DNS64 和 NAT64。对于需要公共互联网访问的流量,容器组的流量将源网络地址转换为公有 IP 地址。

  • 路由地址:当容器组与 VPC 外部通信时,其原始 IPv6 地址将被保留(不会转换为节点的 IPv6 地址)。此流量将直接通过互联网网关或仅出口互联网网关进行路由。

  • 节点:所有节点均已分配 IPv4 和 IPv6 地址。

  • Fargate 容器组(pod):每个 Fargate 容器组(pod)都会收到来自为其部署的子网指定的 CIDR 的 IPv6 地址。运行 Fargate 容器组(pod)的底层硬件单元从分配给部署硬件单元的子网的 CIDR 获取唯一的 IPv4 和 IPv6 地址。

如何将 IPv6 与 EKS 结合使用。

  • 创建新集群:您必须创建新集群并指定该集群要使用 IPv6 系列。您无法为从前一版本更新的集群启用 IPv6 系列。有关如何创建新集群的说明,请参阅“注意事项”。

  • 使用最新的 VPC CNI:部署 Amazon VPC CNI 版本 1.10.1 或更高版本。默认情况下,会部署此版本或更高版本。部署附加组件后,您无法在不先删除集群所有节点组中的所有节点的情况下将 Amazon VPC CNI 附加组件版本降级到 1.10.1 版以下。

  • 为 IPv6 配置 VPC CNI:如果您使用 Amazon EC2 节点,则必须使用 IP 前缀委派和 IPv6 配置 Amazon VPC CNI 附加组件。如果您在创建集群时选择 IPv6 系列,则 1.10.1 版的附加组件默认采用此配置。自行管理或 Amazon EKS 附加组件均为属于此种情况。有关 IP 前缀委派的更多信息,请参阅 为带前缀的 Amazon EKS 节点分配更多 IP 地址。

  • 配置 IPv4 和 IPv6 地址:创建集群时,您指定的 VPC 和子网必须具有分配给您指定的 VPC 和子网的 IPv6 CIDR 块。您还必须为其分配一个 IPv4 CIDR 块。这是因为,即使您只想使用 IPv6,VPC 仍然需要 IPv4 CIDR 块才能正常工作。有关更多信息,请参阅 Amazon VPC 用户指南中的关联 IPv6 CIDR 块与 VPC。

  • 自动将 IPv6 地址分配非节点:创建节点时,必须指定配置为自动分配 IPv6 地址的子网。否则,您无法部署节点。默认情况下,将禁用此配置。有关更多信息,请参阅 Amazon VPC 用户指南中的修改子网的 IPv6 寻址属性。

  • 设置路由表以使用 IPv6:分配给子网的路由表必须有 IPv6 地址的路由。有关更多信息,请参阅 Amazon VPC 用户指南中的迁移到 IPv6。

  • 为 IPv6 设置安全组:您的安全组必须允许 IPv6 地址。有关更多信息,请参阅 Amazon VPC 用户指南中的迁移到 IPv6。

  • 设置负载均衡器:使用 AWS 负载均衡器控制器版本 2.3.1 或更高版本,对 HTTP 应用程序(通过使用 使用应用程序负载均衡器路由应用程序和 HTTP 流量)或流向 IPv6 容器组(pod)的网络流量(通过在 IP 模式下借助负载均衡器使用 使用网络负载均衡器路由 TCP 和 UDP 流量,不支持实例模式)进行负载均衡。有关更多信息,请参阅 使用 AWS 负载均衡器控制器路由互联网流量。

  • 添加 IPv6 IAM 策略:您必须将 IPv6 IAM 策略附加到节点 IAM 或 CNI IAM 角色。在两者之间,我们建议您将其附加到 CNI IAM 角色。有关更多信息,请参阅为使用 IPv6 系列的集群创建 IAM policy和步骤 1:创建适用于 Kubernetes 的 Amazon VPC CNI 插件 IAM 角色。

  • 评估所有组件:在部署 IPv6 集群之前对集成的应用程序、Amazon EKS 附加组件和 AWS 服务进行全面的评估。这是为了确保 IPv6 的所有功能按预期运行。