Amazon EKS 联网 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon EKS 联网

本章提供了 Amazon EKS 联网概览。下图展示了 Amazon EKS 集群的关键组件,以及这些组件与 VPC 的关系。


            EKS 联网

以下说明可帮助您了解图中各组件之间的关系,以及本指南和其他Amazon指南中您可以参考以获取更多信息的主题。

  • Amazon VPC 和子网 – 所有 Amazon EKS 资源都部署到现有 VPC 中现有子网中的一个 Amazon Web Services 区域。有关更多信息,请参阅 Amazon VPC 用户指南中的 VPC 和子网。每个子网均位于一个可用区中。VPC 和子网必须满足以下要求:

    • 必须对 VPC 和子网进行适当标记,以便 Kubernetes 知道可以将它们用于部署资源,如负载均衡器。有关更多信息,请参阅 为子网添加标签。如果您使用 Amazon EKS 提供的 Amazon CloudFormation 模板或使用 eksctl 部署 VPC,那么 VPC 和子网已经过适当标记。

    • 子网可能有 Internet 访问权限,也可能没有 Internet 访问权限。如果子网没有 Internet 访问权限,则其中部署的 Pod 必须能够访问其他Amazon服务(例如 Amazon ECR)来提取容器镜像。有关使用没有 Internet 访问权限的子网的更多信息,请参阅 私有集群

    • 必须将您使用的任何公有子网配置为自动为在其中启动的 Amazon EC2 实例分配公有 IPv4 地址或 IPv6 地址。有关更多信息,请参阅 VPC IP 寻址

    • 如果使用 IPv6,则必须将每个子网配置为自动分配 IPv6 地址。有关更多信息,请参阅 Amazon VPC 用户指南中的修改子网的 IPv6 寻址属性

    • 节点和控制层面必须能够通过经适当标记的安全组通过所有端口通信。有关更多信息,请参阅 Amazon EKS 安全组注意事项

    • 您可实施网络分割和租户隔离网络策略。网络策略类似于 Amazon 安全组的一点是,您可以创建网络传入和传出规则。您使用 Pod 选择器和标签向 Pod 分配网络策略,而不是向安全组分配实例。有关更多信息,请参阅 安装 Calico 附加组件

    您可以通过手动配置部署符合 Amazon EKS 要求的 VPC 和子网,也可以通过使用 eksctl 或 Amazon EKS 提供的 Amazon CloudFormation 模板来部署 VPC 和子网。eksctl 和 Amazon CloudFormation 模板二者均创建具有所需配置的 VPC 和子网。有关更多信息,请参阅 为 Amazon EKS 集群创建 VPC

  • Amazon EKS 控制层面 – 由 Amazon EKS 在 Amazon EKS 托管的 VPC 中部署和管理。创建集群时,Amazon EKS 会在您的账户中创建和管理其描述中具有 Amazon EKS <cluster name> 的网络接口。这些网络接口允许 Amazon Fargate 和 Amazon EC2 实例与控制层面进行通信。

    预设情况下,控制层面会公开一个公共端点,以便客户端和节点可以与集群进行通信。您可以限制可以与公共端点通信的 Internet 客户端源 IP 地址。或者,您也可以启用私有端点并禁用公有端点,或同时启用公有端点和私有端点。要了解集群端点的详情,请参阅 Amazon EKS 集群端点访问控制

    如果您已在部署了集群的 VPC 和其他网络之间配置了连接,那么您的本地部署网络或其他 VPC 中的客户端可以与公有或仅私有端点通信。有关将 VPC 连接到其他网络的更多信息,请参阅Amazon Network-to-Amazon VPC 连接选项Amazon VPC-to-Amazon VPC 连接选项技术文章。

  • Amazon EC2 实例 – 每个 Amazon EC2 节点都部署到一个子网。每个节点都分配有一个来自于分配给子网的 CIDR 块的私有 IP 地址。如果子网是使用 Amazon EKS 提供的 Amazon CloudFormation 模板之一来创建的,则该子网会自动向部署到公有子网的节点分配一个公有 IPv4 地址。默认情况下,每个节点都与 Amazon VPC CNI 附加组件一起部署。附加组件从分配给节点所在子网的 CIDR 块中为每个容器分配一个私有 IP 地址,并将一个 IPv4 地址作为次要 IP 地址添加到附加到实例的网络接口之一。该 Amazon 资源在 Amazon Web Services Management Console 和 Amazon EC2 API 中称为网络接口。因此,我们在本文档中使用“网络接口”,而不是“弹性网络接口”。本文档中的“网络接口”术语始终表示“弹性网络接口”。

    您可以通过为您的 VPC 分配额外的 IPv4 CIDR 块并启用 CNI 自定义网络(将 IP 地址分配给不同的子网中的容器,而非部署有节点的子网中的容器)来更改此行为。要使用自定义联网,您必须在启动节点时启用自定义联网。您还可以将唯一的安全组与在许多 Amazon EC2 实例类型上运行的某些 Pod 关联起来。有关更多信息,请参阅 适用于 Pod 的安全组

    默认情况下,与 VPC 外部资源通信的每个容器的源 IPv4 地址会通过网络地址转换 (NAT) 转换为附加到节点的主网络接口的主 IP 地址。您可以将此行为更改为,让私有子网中的 NAT 设备将每个容器的 IPv4 地址转换为该 NAT 设备的 IPv4 地址。有关更多信息,请参阅 外部源网络地址转换 (SNAT)

    如果您的实例部署到使用 IPv6 系列的集群,则您必须将 IPv6 CIDR 块分配给您的 VPC 和子网。出站 IPv6 流量未转换网络地址。有关集群使用 IPv6 的详细信息,请参阅 将 IPv6 地址分配给容器和服务

  • Fargate Pod – 仅部署到私有子网。每个容器都分配有一个来自于分配给子网的 CIDR 块的私有 IPv4(以及可选的 IPv6)地址。Fargate 并不支持所有 Pod 联网选项。有关更多信息,请参阅 Amazon Fargate 注意事项