创建亚马逊 EKS 集群
Amazon EKS 为 Kubernetes 集群提供了一个托管的 control-plane。为了确保高可用性,Amazon EKS 中的 Kubernetes control-plane 实例运行在多个可用区。Rancher 为部署和管理 Amazon EKS 中运行的 Kubernetes 集群提供了直观的用户界面。通过本指南,您将使用 Rancher 在您的 AWS 帐户中快速轻松地启动 Amazon EKS Kubernetes 集群。有关 Amazon EKS 的更多信息,参考文档。
#
先决条件注意 在亚马逊 AWS 中进行部署会产生费用。了解更多信息,请参阅EKS 定价页面。
要在 EKS 上建立集群,您需要创建一个 Amazon VPC(Virtual Private Cloud)。您还需要确保用于创建 EKS 集群的帐户具有适当的权限。有关详细信息,请参阅官方文档Amazon EKS 先决条件。
#
Amazon VPC您需要建立一个 Amazon VPC 来启动 EKS 集群。VPC 使您能够将 AWS 资源启动到您定义的虚拟网络中。了解更多信息,参考教程: 为 Amazon EKS 集群创建一个包含公共和私有子网的 VPC。
#
IAM 策略Rancher 需要访问您的 AWS 帐户,以便在 Amazon EKS 中创建和管理您的 Kubernetes 集群。您需要在 AWS 帐户中为 Rancher 创建一个用户,并定义该用户可以访问的内容。
请按照以下步骤创建具有程序访问权限的用户:此处。
下一步,创建 IAM 策略,定义该用户在 AWS 账户中有权访问的内容。请务必仅授予此用户所需要的最小权限。请按照此处的步骤来创建 IAM 策略并将其附加到用户。
下一步,创建 IAM 策略,定义该用户在 AWS 账户中有权访问的内容。请参考最小权限,为该用户配置所需要的最小权限。按照步骤这里创建 IAM 策略并将其附加到你的用户。
- 最后,按照此处的步骤为此用户创建 Access Key 和 Secret Key。
注意: 定期轮换 Access Key 和 Secret Key 非常重要,参考文档了解更多信息。
有关 EKS 的 IAM 策略的更多详细信息,请参阅官方有关 Amazon EKS IAM 策略、角色和权限的文档。
#
架构下图展示了 Rancher 2.x 的大体架构。该图描述了一个 Rancher Server 管理两个 Kubernetes 集群:一个由 RKE 创建,另一个由 EKS 创建。
#
创建 EKS 集群使用 Rancher 设置和配置 Kubernetes 集群.
从 集群 页面,单击 添加集群.
选择 Amazon EKS.
输入 集群名称.
通过成员角色来设置用户访问集群的权限。
- 单击添加成员将需要访问这个集群的用户添加到成员中。
- 在角色下拉菜单中选择每个用户的权限。
为 EKS 集群配置账户权限。
设置 描述 区域 从下拉列表中选择要在其中创建集群的地理区域。 Access Key 输入之前创建的 Access Key Secret Key 输入之前创建的 Secret Key 单击 下一步: 配置集群。然后选择服务角色。
服务角色 描述 标准:Rancher 生成的服务角色。 如果选择此角色,Rancher 会自动添加一个服务角色以用于集群。 自定义:从现有服务角色中选择。 如果您选择此角色,Rancher 允许您从已经在 AWS 中创建的服务角色中进行选择。有关在 AWS 中创建自定义服务角色的详细信息,参考亚马逊文档。 单击 下一步: 选择 VPC 和 Subnet。
为Worker 节点的公网 IP选择一个选项。您对此选项的选择决定了VPC 和 Subnet可用的选项。
选择 描述 是 当您的集群节点被配置时,它们将被分配一个内网 IP 地址和一个外网 IP 地址。 否:仅私有 IP 当您的集群节点被配置时,它们将会只被分配一个内网 IP 地址。如果您选择此选项,您还必须选择一个VPC & Subnet来允许您的实例访问 internet。此访问是必需的,以便您的工作节点可以连接到 Kubernetes control-plane。 现在选择VPC & Subnet。有关更多信息,请参阅 AWS 文档中的集群 VPC 注意事项。根据上一步的选择,按照下面的说明进行操作。
Worker 节点的公网 IP:是
如果您选择将外网 IP 地址分配给集群的工作节点,您可以选择 “由 Rancher 自动生成 VPC” 或“使用在 AWS 中已有的 VPC”。请选择最适合您的用例的选项。
选择 VPC 和 Subnet 选项。
操作 描述 标准: Rancher 生成的 VPC 和 Subnets 在配置集群时,Rancher 会生成一个新的 VPC 和子网。 自定义:选择您现有的 VPC 和 Subnets 设置集群时,Rancher 将使用您已经在AWS 中创建的 VPC 和子网来配置您的节点。如果选择此选项,请完成以下剩余步骤。 如果您使用 自定义:选择现有的 VPC 和 Subnets:
确保 自定义:选择现有的 VPC 和 Subnets 已经选择中。
在显示的下拉列表中,选择一个 VPC。
单击 下一步: 选择 Subnets。然后选择其中一个显示的Subnets。
单击 下一步: 选择安全组。
Worker 节点的公网 IP:否:仅私有 IP
如果您选择此选项,您还必须选择允许您的实例访问 internet 的VPC & Subnet。这个访问是必需的,这样您的工作节点才可以连接到 Kubernetes control-plane。步骤如下:
提示: 仅使用私有 IP 地址时,为了使您的节点可以访问 internet,您可以创建一个由两个子网组成的 VPC,一个共有子网,一个私有子网。公有子网内的网络地址转换 (NAT) 实例,可让私有子网中的实例发起到 Internet 的流量。有关私有子网路由流量的更多信息,请查看 官方 AWS 文档。
从显示的下拉列表中,选择专有网络 VPC。
单击 下一步: 选择 Subnets。然后选择其中一个显示的Subnets。
单击 下一步: 选择安全组。
选择安全组。请参阅下面的文档,了解如何创建一个安全组。
Amazon 文档:
单击 选择实例选项,然后编辑可用的节点选项。工作节点的实例类型和大小会影响每个工作节点将有多少 IP 地址可用。参考这个文档了解更多信息。
选项 描述 实例类型 为正在配置的实例选择硬件规格。 自定义 AMI 如果您想使用自定义的 Amazon Machine Image (AMI),请在这里指定它。默认情况下,Rancher 将会根据您选择的 EKS 版本来使用相应的EKS-调优的 AMI。 预期 ASG 大小 通过亚马逊弹性伸缩组控制实例数。 用户数据 可以传递自定义命令来执行自动配置任务 警告:修改此命令可能会导致节点无法加入集群 注意: 从 v2.2.0 起提供 单击 创建。
结果:
- 您的集群创建成功并进入到Provisioning(启动中)的状态。Rancher 正在拉起您的集群。
- 在集群状态变为Active(激活)状态后,您将可以开始访问您的集群。
- 在Active的集群中,有两个默认项目:
Default
项目(包括default
命名空间)和System
项目(包括cattle-system
、ingress-nginx
、kube-public
和kube-system
)。
#
故障排查对于您的 Amazon EKS Kubernetes 集群的任何问题或故障排查细节,请参考文档。
#
AWS 服务事件查找任何 AWS 服务事件的信息,请参考此页。
#
安全性和合规性对于您的 Amazon EKS Kubernetes 集群的安全性和合规性的更多信息,请参考文档。
#
教程AWS 开源博客上的这篇教程将指导您如何使用 Rancher 设置一个 EKS 集群,并部署一个可公开访问的应用程序来测试集群。并部署一个通过使用其他开源软件如 Grafana 和 influxdb 来实时监控地理信息的示例项目。
#
附录 - 最小 EKS 权限此文档描述了在使用 Rancher 中的 EKS 驱动时,所需要的最小权限。
因为很多要创建的资源的 ARN(Amazon 资源名称)不能在创建 EKS 集群之前确定,所以需要使用*
来表示目标资源。某些权限(例如 ec2:CreateVpc
)仅在 Rancher 需要创建这些资源的时候使用。