在 Amazon EKS 上安装 Rancher
#
概述本文介绍了在 EKS 上安装 Rancher 的两种方法。
第一种方法是使用 CloudFormation 在 EKS 集群上部署 Rancher 服务器的指南。本指南是与 Amazon Web Services 合作创建的,旨在展示如何按照最佳实践部署 Rancher。
第二种方法是使用命令行工具安装带有入口的 EKS 集群的指南。如果您想在 EKS 上试用 Rancher 时使用较少的资源,请使用这种方式部署 Rancher。
如果您已经有一个 EKS Kubernetes 集群,请跳转到5. 安装 Ingress章节。然后按照高可用安装指南上的说明安装 Rancher Helm Chart。
#
使用 AWS 最佳实践自动快速启动Rancher 和 AWS 合作编写了一份快速入门指南,用于按照 AWS 最佳实践在 EKS 集群上部署 Rancher,详情请参考部署指南。
快速入门指南提供了在 EKS 上部署 Rancher 的三个选项。
- 将 Rancher 部署到新的 VPC 和新的 Amazon EKS 集群中:该选项构建了一个由 VPC、子网、NAT 网关、安全组、堡垒主机、Amazon EKS 集群和其他基础设施组件组成的全新 AWS 环境。然后将 Rancher 部署到这个新的 EKS 集群中。
- 将 Rancher 部署到现有 VPC 和新的 Amazon EKS 集群中:此选项在现有 AWS 基础架构中提供 Rancher。
- 将 Rancher 部署到现有的 VPC 和现有的 Amazon EKS 集群中:此选项可在您现有的 AWS 基础架构中提供 Rancher。
使用默认参数为新的虚拟私有云 (VPC) 和新的 Amazon EKS 集群部署此快速入门,可在 AWS 云中构建以下 Rancher 环境。
- 跨越三个可用区的高可用架构。*
- 根据 AWS 最佳实践,配置了公共和私有子网的 VPC,为您提供 AWS 上自己的虚拟网络。*
- 公共子网
- 在公共子网中: 管理网络地址转换(NAT)网关,以允许资源的外向互联网访问。*
- 自动扩展组中的 Linux 堡垒主机,允许对公共和私有子网中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例进行入站安全 Shell (SSH) 访问。*
- 私有子网中
- 自动扩展组中的 Kubernetes 节点。*
- 网络负载均衡器(未显示),用于访问 Rancher 控制台。
- 使用 AWS Systems Manager 自动化进行 Rancher 部署。
- 用于 EKS 集群的 Amazon EKS 服务,它提供了 Kubernetes controlplane 一个用于访问 Rancher 控制台的 Amazon Route 53 DNS 记录(未显示)。*
- 用于访问 Rancher 部署的 Amazon Route 53 DNS 记录。
说明
将快速启动部署到现有亚马逊 EKS 集群中的 CloudForm 模板会跳过标有星号(*)的组件,并提示您查看现有 VPC 配置。
#
为 Rancher Server 创建 EKS 集群在本节中,您将使用命令行工具安装一个带有入口的 EKS 集群。如果您想在 EKS 上试用 Rancher 时使用较少的资源,本指南会很有用。
#
前提条件- 已有一个 AWS 账户。
- 建议使用 IAM 用户而不是 AWS 根账户。您将需要 IAM 用户的访问密钥和秘钥来配置 AWS 命令行界面。
- IAM 用户需要官方eksctl 文档中描述的最低 IAM 策略。
#
1. 准备好您的工作站请在工作站上安装以下命令行工具:
#
2. 配置 AWS CLI运行以下命令,配置 AWS CLI:
然后输入以下参数:
变量 | 描述 |
---|---|
AWS Access Key ID | 具有 EKS 权限的 IAM 用户的访问密钥凭证。具有 EKS 权限的 IAM 用户的访问密钥凭证。 |
AWS Secret Access Key | 具有 EKS 权限的 IAM 用户的密匙凭证。 |
Default region name | 集群节点所在的AWS 区域。 |
Default output format | 输入 json 。 |
#
3. 创建 EKS 集群请运行以下命令,创建 EKS 集群,请使用适用于您的用例的 AWS 区域。
集群需要一些时间才能使用 CloudFormation 进行部署。
#
4. 验证集群是否可用请运行以下命令,验证集群是否可用:
返回结果应该是这样的:
#
5. 安装 Ingress集群需要一个 Ingress,这样就可以从集群外部访问 Rancher。
下面的命令安装了一个nginx-ingress-controller
和一个 LoadBalancer 服务。这将导致在 NGINX 前面有一个 ELB(Elastic Load Balancer)。
#
6. 获取负载均衡器的 IP 地址运行以下命令获取负载均衡器的 IP 地址:
返回结果跟下方示例代码类似:
EXTERNAL-IP
就是负载均衡器的 IP 地址,请妥善保存。
#
7. 配置 DNS到 Rancher 服务器的外部流量需要指向您创建的负载均衡器。
设置一个 DNS,指向您保存的外部 IP。这个 DNS 将被用作 Rancher 服务器的 URL。
设置 DNS 的有效方法有很多。有关帮助,请参考 AWS 文档中关于将流量路由到 ELB 负载均衡器的内容。
#
8. 安装 Rancher Helm Chart按照本页上的说明安装 Rancher Helm Chart。Helm 说明与在任何 Kubernetes 发行版上安装 Rancher 相同。
安装 Rancher 时,使用上一步中的那个 DNS 名称作为 Rancher 服务器的 URL。它可以作为 Helm 选项传递进来。例如,如果 DNS 名是rancher.my.org
,你可以用--set hostname=rancher.my.org
这个选项运行 Helm 安装命令。