

 **帮助改进此页面** 

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

# 了解如何将 IPv6 地址分配给集群、容器组（pod）和服务
<a name="cni-ipv6"></a>

 **适用对象**：使用 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 托管节点](deploy-ipv6-cluster.md)。

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

## `IPv6` 功能支持
<a name="_ipv6_feature_support"></a>
+  **不支持 Windows**：不支持 Windows 容器组（pod）和服务。
+  **需要基于 Nitro 的 EC2 节点**：您只能将 Amazon 与 `IPv6` 基于 Nitro 的 Amazon EC2 节点或 Fargate 节点结合使用。
+  **支持 EC2 和 Fargate 节点**：您可以将 `IPv6` 与具有 Amazon EC2 节点和 Fargate 节点的 [将安全组分配给各个容器组（pod）](security-groups-for-pods.md) 结合使用。
+  **不支持 Outposts**：您不能将 `IPv6` 与 [使用 Amazon Outposts 在本地部署 Amazon EKS](eks-outposts.md) 结合使用。
+  **不支持 FSx for Lustre**：不支持 [将高性能应用程序存储与适用于 Lustre 的 Amazon FSx 结合使用](fsx-csi.md)。
+  **不支持自定义联网**：如果您以前使用过[使用自定义网络在备用子网中部署容器组（pod）](cni-custom-network.md)帮助缓解 IP 地址耗尽，您可以改用 `IPv6`。您不能将自定义联网与 `IPv6` 结合使用。如果您使用自定义联网进行网络隔离，则可能需要为集群继续使用自定义联网和 `IPv4` 系列。

## IP 地址分配
<a name="_ip_address_assignments"></a>
+  **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](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64)。对于需要公共互联网访问的流量，容器组的流量将源网络地址转换为公有 IP 地址。
+  **路由地址**：当容器组与 VPC 外部通信时，其原始 `IPv6` 地址将被保留（不会转换为节点的 `IPv6` 地址）。此流量将直接通过互联网网关或仅出口互联网网关进行路由。
+  **节点**：所有节点均已分配 `IPv4` 和 `IPv6` 地址。
+  **Fargate 容器组（pod）**：每个 Fargate 容器组（pod）都会收到来自为其部署的子网指定的 CIDR 的 `IPv6` 地址。运行 Fargate 容器组（pod）的底层硬件单元从分配给部署硬件单元的子网的 CIDR 获取唯一的 `IPv4` 和 `IPv6` 地址。

## 如何将 `IPv6` 与 EKS 结合使用。
<a name="_how_to_use_ipv6_with_eks"></a>
+  **创建新集群**：您必须创建新集群并指定该集群要使用 `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 地址](cni-increase-ip-addresses.md)。
+  **配置 `IPv4` 和 `IPv6` 地址**：创建集群时，您指定的 VPC 和子网必须具有分配给您指定的 VPC 和子网的 `IPv6` CIDR 块。您还必须为其分配一个 `IPv4` CIDR 块。这是因为，即使您只想使用 `IPv6`，VPC 仍然需要 `IPv4` CIDR 块才能正常工作。有关更多信息，请参阅 Amazon VPC 用户指南中的[关联 IPv6 CIDR 块与 VPC](https://docs.amazonaws.cn/vpc/latest/userguide/working-with-vpcs.html#vpc-associate-ipv6-cidr)。
+  **自动将 IPv6 地址分配非节点**：创建节点时，必须指定配置为自动分配 `IPv6` 地址的子网。否则，您无法部署节点。默认情况下，将禁用此配置。有关更多信息，请参阅 Amazon VPC 用户指南中的[修改子网的 IPv6 寻址属性](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6)。
+  **设置路由表以使用 `IPv6`**：分配给子网的路由表必须有 `IPv6` 地址的路由。有关更多信息，请参阅 Amazon VPC 用户指南中的[迁移到 IPv6](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-migrate-ipv6.html)。
+  **为 `IPv6` 设置安全组**：您的安全组必须允许 `IPv6` 地址。有关更多信息，请参阅 Amazon VPC 用户指南中的[迁移到 IPv6](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-migrate-ipv6.html)。
+  **设置负载均衡器**：使用 Amazon 负载均衡器控制器版本 `2.3.1` 或更高版本，对 HTTP 应用程序（通过使用 [使用应用程序负载均衡器路由应用程序和 HTTP 流量](alb-ingress.md)）或流向 `IPv6` 容器组（pod）的网络流量（通过在 IP 模式下借助负载均衡器使用 [使用网络负载均衡器路由 TCP 和 UDP 流量](network-load-balancing.md)，不支持实例模式）进行负载均衡。有关更多信息，请参阅 [使用 Amazon 负载均衡器控制器路由互联网流量](aws-load-balancer-controller.md)。
+  **添加 `IPv6` IAM 策略**：您必须将 `IPv6` IAM 策略附加到节点 IAM 或 CNI IAM 角色。在两者之间，我们建议您将其附加到 CNI IAM 角色。有关更多信息，请参阅[为使用 `IPv6` 系列的集群创建 IAM policy](cni-iam-role.md#cni-iam-role-create-ipv6-policy)和[步骤 1：创建适用于 Kubernetes 的 Amazon VPC CNI 插件 IAM 角色](cni-iam-role.md#cni-iam-role-create-role)。
+  **评估所有组件**：在部署 `IPv6` 集群之前对集成的应用程序、Amazon EKS 附加组件和 Amazon 服务进行全面的评估。这是为了确保 `IPv6` 的所有功能按预期运行。