使用场景举例:假设 Rancher Server 位于美国,用户“Alice”和她管理的下游集群“User Cluster 1”位于澳大利亚。虽然 Alice 可以使用 Rancher 控制台管理 User Cluster 1 中的资源,但是她发出的请求要从澳大利亚发送到美国的 Server 端,然后再由 Server 代理回澳大利亚的集群端,澳大利亚集群端处理完请求后,再返回给美国的 Server 端,最后才能返回给澳大利亚的“Alice”。因为美澳之间的距离非常遥远,所以发送的请求和返回的请求结果都会存在显著的延迟。Alice 可以使用授权集群端点,降低延迟,更好地掌控她的下游集群。
为下游集群开启授权集群端点后,Rancher 会在“kubeconfig”文件中额外生成一段 Kubernetes context,来允许用户直接连接到集群。kubeconfig 这个文件中含有 kubectl 和 helm 的认证信息。
如果 Rancher 出现问题,无法连接,需要使用 kubeconfig 中的 context 帮助访问集群。因此,建议导出一份 kubeconfig 文件副本,保存到本地,以备不时之需。
1.5 Rancher相关文件rancher-cluster.yml :RKE 集群配置文件。
kube_config_rancher-cluster.yml :集群的 kubeconfig 文件,它包含了访问集群的全部权限。如果 Rancher 出现故障,无法运行,可以使用这个文件连接通过 Rancher 部署的 Kubernetes 集群(RKE 集群)。
rancher-cluster.rkestate :Kubernetes 集群状态文件,该文件含有访问集群的所有权限。只有使用 RKE 0.2.0 或以上版本时,才会创建该文件。
注意:后两个文件名的“rancher-cluster”部分取决于如何命名 RKE 集群的配置文件。
1.6 Rancher创建的Kubernetes类型Rancher通常可以创建如下几种类型的下游 Kubernetes 集群:
Rancher自动创建节点并部署Kubernetes集群:Rancher 可以动态创建位于云上的节点(Node),如 Amazon EC2、Azure 和 vSphere等,然后在节点上安装 Kubernetes。Rancher 使用 RKE 和 docker-machine创建这种集群。
Rancher通过已有的节点并部署Kubernetes集群:配置这种集群时,Rancher 可以在已有的虚拟机、物理机或云主机上安装 Kubernetes。这种集群叫自定义集群。Rancher 使用RKE创建这种集群。
Rancher管理云服务商托管的Kubernetes集群:配置这种集群时,Kubernetes 由云服务供应商安装,如 GKE、ECS 和 AKS。Rancher 使用kontainer-engine来调用云厂商的 API 来创建集群。
Rancher导入已有的Kubernetes集群:这种情况下,Rancher 只需要连接到已经配置好 Kubernetes 的集群。因此,Rancher 只设置 Rancher Agent 与集群通信,不直接创建集群。
二 基础环境配置 2.1 安装介绍Rancher Server:用于管理和配置 Kubernetes 集群。可以通过 Rancher Server 的 UI 与下游 Kubernetes 集群进行交互。
RKE(Rancher Kubernetes Engine):是经过认证的 Kubernetes 发行版,它拥有对应的 CLI 工具可用于创建和管理 Kubernetes 集群。在 Rancher UI 中创建集群时,它将调用 RKE 来配置 Rancher 所创建的 Kubernetes 集群。
K3s (轻量级 Kubernetes): 和 RKE 类似,也是经过认证的 Kubernetes 发行版。它比 RKE 更新,更易用且更轻量化,全部组件都在一个小于 100 MB 的二进制文件中。从 Rancher v2.4 开始,Rancher 可以安装在 K3s 集群上。
2.2 架构选择高可用 Kubernetes 安装: 建议使用 Kubernetes 程序包管理器 Helm 在专用的 Kubernetes 集群上安装 Rancher。在 RKE 集群中,需要使用三个节点以实现高可用性。在 K3s 集群中,仅需要两个节点即可。
单节点 Kubernetes 安装: 另一个选择是在 Kubernetes 集群上使用 Helm 安装 Rancher,仅在集群中使用单个节点。虽然在这种情况下的 Rancher Server 不具有高可用性,但是这种架构既节省了资源,又保留了可扩展性。如果想在短期内通过使用单个节点来节省资源,同时又保留高可用性迁移路径,最合适的架构就是单节点 Kubernetes 安装。
单节点 Docker 安装: 将 Rancher 与 Docker 一起安装在单个节点上。这种安装方式的优点是开箱即用,建议在测试和演示环境中使用这种架构。它的缺点也非常明显,单节点 Docker 安装和高可用集群安装之间不能进行数据迁移,所以推荐从一开始就使用高可用集群安装的方式安装 Rancher。
提示:本实验基于高可用集群——K3S高可用Kubernetes集群(参考附018.K3S-ETCD高可用部署),同时使用helm来部署Rancher。