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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为您的 Amazon EKS 集群创建 VPC

通过 Amazon Virtual Private Cloud (Amazon VPC),您可以将Amazon资源启动到您定义的虚拟网络中。这个虚拟网络与您在数据中心中运行的传统网络极其相似,并会为您提供使用Amazon的可扩展基础设施的优势。有关更多信息,请参阅 。Amazon VPC 用户指南Amazon EKS 节点的集群联网解密

如果您想使用现有 VPC,则它必须满足与 Amazon EKS 一起使用的特定要求。有关更多信息,请参阅 集群 VPC 注意事项。本主题将指导您使用以下配置之一,为集群创建 VPC:

  • 公有子网和私有子网— 此 VPC 有两个公有 VPC 和两个私有 VPC子网。一个公有子网和一个私有子网部署到同一个可用区。其他公有子网和私有子网部署到同一区域的第二个可用区。我们建议所有生产部署使用此选项。此选项允许您将节点部署到私有子网,并允许 Kubernetes 将负载均衡器部署到公有子网,从而将流量负载平衡到在私有子网中的节点上运行的 Pod。

    系统自动向部署到其中一个公有子网的资源分配公有 IP 地址,但公有 IP 地址不会分配给部署到私有子网的任何资源。私有子网中的节点可以与群集和其他Amazon服务,并且容器可以通过NAT 网关部署在每个可用区中的组件。部署了安全组,拒绝所有入站流量并允许所有出站流量。对子网进行标记,以便 Kubernetes 能够向它们部署负载均衡器。有关子网标记的更多信息,请参阅子网添加标签。有关此类 VPC 的更多信息,请参阅带有公有子网和私有子网 (NAT) 的 VPC

  • 仅公有子网— 此 VPC 有三个公有子网,部署到区域中的不同可用区。所有节点都会自动分配公有 IP 地址,并且可以通过 Internet 网关发送和接收 Internet 流量。部署了安全组,拒绝所有入站流量并允许所有出站流量。对子网进行标记,以便 Kubernetes 可以向它们部署负载均衡器。有关子网标记的更多信息,请参阅子网添加标签。有关此类 VPC 的更多信息,请参阅带有单个公有子网的 VPC

  • 仅私有子网— 此 VPC 有三个私有子网,部署到区域中的不同可用区。所有节点都可以选择通过 NAT 实例或 NAT 网关收发 Internet 流量。部署了安全组,拒绝所有入站流量并允许所有出站流量。对子网进行标记,以便 Kubernetes 可以向它们部署内部负载均衡器。有关子网标记的更多信息,请参阅子网添加标签。有关此类 VPC 的更多信息,请参阅仅带有私有子网的 VPC,AmazonSite-to-Site VPN 访问

    重要

    如果 VPC 没有出站 Internet 访问,例如通过 NAT 实例、NAT 网关、VPN 或 Direct Connect,则会有其他要求。您必须向节点提供集群证书颁发机构和集群 API 终端节点,从而绕过 EKS 集群自检。您可能还需要配置修改集群终端节点访问中列出的 VPC 终端节点。

重要

如果您 VPC 用eksctl或使用任何一个亚马逊 EKSAmazon CloudFormationVPC 模板:

  • 2020 年 3 月 26 日或之后 — 公有子网将公有 IPv4 地址自动分配给部署到公有子网的新节点。

  • 2020 年 3 月 26 日之前 — 公有子网不会将公有 IPv4 地址自动分配给部署到公有子网的新节点。

此更改通过以下方式影响部署到公有子网的新节点组:

为您的 Amazon EKS 集群创建 VPC

您可以创建具有公有子网和私有子网、仅公有子网或仅限私有子网的 VPC。选择带有要创建的 VPC 类型的描述的选项卡。

Public and private subnets

创建带有公有子网和私有子网的集群 VPC

  1. 打开 Amazon CloudFormation 控制台,网址:https://console.aws.amazon.com/cloudformation

  2. 从导航栏中,选择支持 Amazon EKS 的区域。

  3. 依次选择 Create stack (创建堆栈)With new resources (standard) (使用新资源(标准))

  4. 适用于Choose a template,选择指定 Amazon S3 模板 URL

  5. 将以下 URL 粘贴到文本区域中,然后选择 Next (下一步)

    https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
  6. Specify Details (指定详细信息) 页面上,相应填写参数,然后选择 Next (下一步)

    • 堆栈名称:为您选择堆栈名称Amazon CloudFormation堆栈。例如,您可以将其称为 eks-vpc

    • VpcBlock:为您的 VPC 选择 CIDR 范围。您部署的每个工作节点、容器和负载均衡器都会从此块中分配一个 IP 地址。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以对其进行更改。有关更多信息,请参阅 。VPC 和子网大小调整(在 Amazon VPC 用户指南 中)。您还可以在 VPC 创建后向其添加额外的 CIDR 块。

    • 公共子网 01 块:为公有子网 1 指定 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 公共子网块:为公有子网 2 指定 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 私有子网 01 块:为私有子网 1 指定 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 私有子网 02 块:为私有子网 2 指定 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

  7. (可选)在 Options (选项) 页面上,为您的堆栈资源添加标签。选择 Next (下一步)

  8. Review 页面上,选择 Create

  9. 创建堆栈后,在控制台中选中它,然后选择 Outputs (输出)

  10. 记录已创建的安全组的 SecurityGroups 值。向集群添加节点时,您必须指定安全组的 ID。安全组应用到 Amazon EKS 在子网中创建的弹性网络接口,从而允许控制层面与您的节点进行通信。这些网络接口具有Amazon EKS <cluster name>(在描述中)。

  11. 记录所创建 VPC 的 VpcId。您在启动节点组模板时需要此功能。

  12. 记录已创建子网的 SubnetIds,以及您将其作为公有子网还是私有子网创建。向集群添加节点时,您必须指定要在其中启动节点的子网的 ID。

Only public subnets

创建只带有公有子网的集群 VPC

  1. 打开 Amazon CloudFormation 控制台,网址:https://console.aws.amazon.com/cloudformation

  2. 从导航栏中,选择支持 Amazon EKS 的区域。

  3. 依次选择 Create stack (创建堆栈)With new resources (standard) (使用新资源(标准))

  4. 适用于Choose a template,选择指定 Amazon S3 模板 URL

  5. 将以下 URL 粘贴到文本区域中,然后选择 Next (下一步)

    https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
  6. Specify Details (指定详细信息) 页面上,相应填写参数,然后选择 Next (下一步)

    • 堆栈名称:为您选择堆栈名称Amazon CloudFormation堆栈。例如,您可以将其称为 eks-vpc

    • VpcBlock:为您的 VPC 选择 CIDR 块。您部署的每个工作节点、容器和负载均衡器都会从此块中分配一个 IP 地址。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以对其进行更改。有关更多信息,请参阅 。VPC 和子网大小调整(在 Amazon VPC 用户指南 中)。您还可以在 VPC 创建后向其添加额外的 CIDR 块。

    • 子网 01 块:指定子网 1 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 子网 02 块:指定子网 2 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 子网 03 块:指定子网 3 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

  7. (可选)在 Options (选项) 页面上,为您的堆栈资源添加标签。选择 Next (下一步)

  8. Review 页面上,选择 Create

  9. 创建堆栈后,在控制台中选中它,然后选择 Outputs (输出)

  10. 记录已创建的安全组的 SecurityGroups 值。向集群添加节点时,您必须指定安全组的 ID。安全组应用到 Amazon EKS 在子网中创建的弹性网络接口,从而允许控制层面与您的节点进行通信。这些网络接口具有Amazon EKS <cluster name>(在描述中)。

  11. 记录所创建 VPC 的 VpcId。您在启动节点组模板时需要此功能。

  12. 记录已创建的子网的 SubnetIds。向集群添加节点时,您必须指定要在其中启动节点的子网的 ID。

Only private subnets

创建只带有私有子网的集群 VPC

  1. 打开 Amazon CloudFormation 控制台,网址:https://console.aws.amazon.com/cloudformation

  2. 从导航栏中,选择支持 Amazon EKS 的区域。

  3. 依次选择 Create stack (创建堆栈)With new resources (standard) (使用新资源(标准))

  4. 适用于Choose a template,选择指定 Amazon S3 模板 URL

  5. 将以下 URL 粘贴到文本区域中,然后选择 Next (下一步)

    https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
  6. Specify Details (指定详细信息) 页面上,相应填写参数,然后选择 Next (下一步)

    • 堆栈名称:为您选择堆栈名称Amazon CloudFormation堆栈。例如,您可以将其称为 eks-vpc

    • VpcBlock:为您的 VPC 选择 CIDR 块。您部署的每个工作节点、容器和负载均衡器都会从此块中分配一个 IP 地址。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以对其进行更改。有关更多信息,请参阅 。VPC 和子网大小调整(在 Amazon VPC 用户指南 中)。您还可以在 VPC 创建后向其添加额外的 CIDR 块。

    • 私有子网 01 块:指定子网 1 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 私有子网 02 块:指定子网 2 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

    • 私有子网 03 块:指定子网 3 的 CIDR 块。默认值为大多数实现提供了足够的 IP 地址,但如果没有,则可以将其更改

  7. (可选)在 Options (选项) 页面上,为您的堆栈资源添加标签。选择 Next (下一步)

  8. Review 页面上,选择 Create

  9. 创建堆栈后,在控制台中选中它,然后选择 Outputs (输出)

  10. 记录已创建的安全组的 SecurityGroups 值。向集群添加节点时,您必须指定安全组的 ID。安全组应用到 Amazon EKS 在子网中创建的弹性网络接口,以允许控制层面与您的节点进行通信。这些网络接口具有Amazon EKS <cluster name>(在描述中)。

  11. 记录所创建 VPC 的 VpcId。您在启动节点组模板时需要此功能。

  12. 记录已创建的子网的 SubnetIds。向集群添加节点时,您必须指定要在其中启动节点的子网的 ID。

后续步骤

创建 VPC 后,您可以尝试Amazon EKS 入门演练。