帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
将 IPv6 地址分配给您的集群、pods 和服务
适用于:使用 Amazon EC2 实例和 Fargate Pods 的 Pods
默认情况下,Kubernetes 将 IPv4
地址分配给您的 Pods 和 services。您可以将集群配置为向其分配 IPv6
地址,而不是将 IPv4
地址分配给 Pods 和 services。Amazon EKS 不支持双堆叠 Pods 或 services,即使 Kubernetes 的 1.23
版本及更高版本中支持此类堆叠也是如此。因此,您无法将 IPv4
和 IPv6
地址同时分配给 Pods 和 services。
创建集群时,您可以选择要用于集群的 IP 系列。集群在创建之后无法更改系列。
注意事项
以下是使用该功能的注意事项:
-
您必须创建新集群并指定该集群要使用
IPv6
系列。您无法为从前一版本更新的集群启用IPv6
系列。有关如何创建新集群的说明,请参阅注意事项 。 -
您部署到集群的 Amazon VPC CNI 附加组件的版本必须为
1.10.1
版或更高版本。默认情况下,会部署此版本或更高版本。部署附加组件后,您无法在不先删除集群所有节点组中的所有节点的情况下将 Amazon VPC CNI 附加组件版本降级到1.10.1
版以下。 -
不支持 Windows Pods 和 services。
-
如果您使用 Amazon EC2 节点,则必须使用 IP 前缀委派和
IPv6
配置 Amazon VPC CNI 附加组件。如果您在创建集群时选择IPv6
系列,则1.10.1
版的附加组件默认采用此配置。自行管理或 Amazon EKS 附加组件均为属于此种情况。有关 IP 前缀委派的更多信息,请参阅 为带前缀的 Amazon EKS 节点分配更多 IP 地址。 -
创建集群时,您指定的 VPC 和子网必须具有分配给您指定的 VPC 和子网的
IPv6
CIDR 块。您还必须为其分配一个IPv4
CIDR 块。这是因为,即使您只想使用IPv6
,VPC 仍然需要IPv4
CIDR 块才能正常工作。有关更多信息,请参阅《Amazon VPC 用户指南》中的将IPv6
CIDR 块与您的 VPC 关联。 -
创建节点时,必须指定配置为自动分配
IPv6
地址的子网。否则,您无法部署节点。默认情况下,将禁用此配置。有关更多信息,请参阅《Amazon VPC 用户指南》中的修改子网的IPv6
寻址属性。 -
分配给子网的路由表必须有
IPv6
地址的路由。有关更多信息,请参阅《Amazon VPC 用户指南》中的迁移到IPv6
。 -
您的安全组必须允许
IPv6
地址。有关更多信息,请参阅《Amazon VPC 用户指南》中的迁移到IPv6
。 -
您只能将
IPv6
与 Amazon 基于 Nitro 的 Amazon EC2 或 Fargate 节点一起使用。 -
您可以将
IPv6
用于具有 Amazon EC2 节点和 Fargate 节点的 将安全组分配到单个 pods。 -
如果您以前使用过自定义联网帮助缓解 IP 地址耗尽,您可以改用
IPv6
。您不能将自定义联网与IPv6
一起使用。如果您使用自定义联网进行网络隔离,则可能需要为集群继续使用自定义联网和IPv4
系列。 -
您不能将
IPv6
与 Amazon Outposts 一起使用。 -
Kubernetes 服务仅分配 IPv6 地址。系统不会为其分配 IPv4 地址。
-
将为容器组分配一个 IPv6 地址和一个主机本地 IPv4 地址。主机本地 IPv4 地址是使用与 VPC CNI 关联的主机本地 CNI 插件分配的,并且该地址不会报告给 Kubernetes 控制面板。仅在有容器组需要与其他 Amazon VPC 或互联网中的外部 IPv4 资源通信时才会使用该地址。主机本地 IPv4 地址将(由 VPC CNI)SNAT 转换为 Worker 节点的主 ENI 的主 IPv4 地址。
-
Pods 和 services 只分配了
IPv6
地址。系统不会为其分配IPv4
地址。由于 Pods 能够通过实例本身上的 NAT 与IPv4
端点通信,因此不需要 DNS64 和 NAT64。如果流量需要公有 IP 地址,则流量将源网络地址转换为公有 IP。 -
在 VPC 之外通信时,Pod 的源
IPv6
地址并非转换为节点IPv6
地址的源网络地址。它使用互联网网关或仅出口互联网网关进行路由。 -
所有节点均已分配
IPv4
和IPv6
地址。 -
您可以使用
2.3.1
版或更高版本的 Amazon 负载均衡器控制器在 IP 模式(而不是实例模式)下对应用程序 或到IPv6
Pods 的网络流量进行负载均衡。有关更多信息,请参阅 使用 Amazon 负载均衡器控制器路由互联网流量。 -
您必须将
IPv6
IAM 策略附加到节点 IAM 或 CNI IAM 角色。在两者之间,我们建议您将其附加到 CNI IAM 角色。有关更多信息,请参阅 为使用 IPv6 系列的集群创建 IAM 策略 和 步骤 1:创建 Amazon VPC CNI plugin for Kubernetes IAM 角色。 -
每个 Pod 容器都会收到来自为其部署的子网指定的 CIDR 的
IPv6
地址。运行 Fargate Pods 的底层硬件单元从分配给部署硬件单元的子网的 CIDR 获取唯一的IPv4
和IPv6
地址。 -
我们建议您在部署
IPv6
集群之前对集成的应用程序、Amazon EKS 附加组件和 Amazon 服务进行全面的评估。这是为了确保IPv6
的所有功能按预期运行。 -
Amazon EKS 不支持使用 Amazon EC2 实例元数据服务
IPv6
端点。 -
在集群中创建使用
IPv6
系列的自行管理节点组时,用户数据必须包含在节点启动时运行的bootstrap.sh
文件的以下 BootstrapArguments
。使用您集群 VPC 的IPv6
CIDR 范围替换your-cidr
。--ip-family ipv6 --service-ipv6-cidr
your-cidr
如果您不知道集群的
IPv6
CIDR
范围,可以使用以下命令查看(需要 Amazon CLI 的2.4.9
版本或更高版本)。aws eks describe-cluster --name
my-cluster
--query cluster.kubernetesNetworkConfig.serviceIpv6Cidr --output text