本文永久链接: https://www.xtplayer.cn/rancher/clusters/rancher-create-custom-cluster/

Rancher 创建自定义 kubernetes 集群,适用于拥有内部虚拟机、内部物理主机,或者没有提供 kubernetes 云服务的云服务器,通过自定义安装方式来快速安装 kubernetes 集群。

主机和端口需求

访问 https://docs.rancher.cn/docs/rancher2/installation_new/requirements/_index/ 了解基础环境硬件配置和端口需求的具体信息。

添加集群

  1. 进入全局/集群视图,再点击添加集群

  2. 选择自定义

  3. 设置集群名称

  4. 成员与角色

    集群成员对应了 Rancher 中的一个真实的用户,角色则表示此用户具有的集群权限。要想在创建集群时添加成员和对应的成员角色,需要首先在全局下添加用户和集群角色。

  5. 集群选项

    • kubernetes 版本

      每个 Rancher 发行版对应了不同的 kubernetes 版本,可根据需求进行选择;

    • 网络组件

      目前 Rancher 支持三种网络组件:flannel、calico、canal。canal 支持基于项目的网络隔离,可根据际需求选择是否开启,flannel 支持 Windows(实验阶段)。

    • 云提供商

      根据主机所属的云平台,选择对应的云提供商。选择对应的云提供商,可以对接公有云上的一些基础设施,比 4 层负载均衡、存储。

  6. 显示高级选项

    在集群选项页右下角可以看到高级选项按钮

  7. 私有镜像仓库

    在全局系统设置中有个默认私有仓库,那个私有仓库是全局性的。如果设置后,安装任何集群都将从那个仓库拉取镜像。这个私有镜像仓库是集群层的,只作用于当前创建的集群。

  8. 授权集群访问地址

    k8s 通过 ssl 来通信认证,而生成 ssl 证书时需要与域名绑定。所以在创建集群的时候为 K8S 集群预先设置一个访问地址,当 Rancher Server 无法访问时,可以通过 kubectl 连接此地址去管理 K8S 集群。

  9. 高级集群选项

    • Nginx Ingress

      Rancher 中默认支持 Nginx Ingress,v2.0.7 开始支持根据自定义是否开启,默认开启。

    • NodePort 端口范围

      采用 NodePort 网络模式时,Pod 映射的宿主机端口,默认 30000-32767

    • Metrics 服务监控

      服务监控指标,v2.0.7 开始支持根据自定义是否开启,默认开启。

    • Pod 安全策略

      根据需求选择启用或者禁止,如要启用,需现在 全局| 安全 |Pod 安全策略 中创建策略,默认禁止。

    • 主机 Docker 版本

      当前版本,经过严格测试的 Docker 有三个版本:18.06.x、18.09.x、19.03.x,如果设置为需要支的版本,主机的 Docker 版本需要为三个版本其中之一,如果版本不一致将无法安装 K8S 集群。默认设置允不受支持的版本,对于生产环境建议选择需要支持的版本

    • Docker 根目录

      如果 docker root 目录非默认,需在此指定;

    • ETCD 备份存储

      可以选择 ETCD 备份存储路径,默认只存本地,也可以存储到 s3 存储;

    • ETCD 备份轮换

      开启 ETCD 备份轮换后,将控制 ETCD 备份副本数据与快照创建周期;

  10. 最后点击下一步

  11. 自定义主机运行命令

    • 主机角色

      在 K8S 的架构中,必须至少有一个 etcd、Control、Worker,三种角色可以运行在同一台主机上。要保证集群的高可用,那么需要保证有多个 etcd、Control 实例并且运行在不同主机上。因为 etcd 数据同步机制,etcd 节点数需要为奇数个,比如 1、3、5,具体查看[etcd 集群容错表](https://docs2.rancher.cn/rancher2x/install-prepare/basic-environment-configuration/#10-etcd 集群容错表)。所以要保证 ETCD 高可用运行,那至少需要有三个节点来运行 etcd 服务。

    • 高级选项

      在高级选项中,可以指定节点的 IP 地址。对于内网环境的单 IP 主机,可以忽略此设置;如果是多 IP 主机,以通过此设置来指定主机的访问 IP。

    • 主机标签

      标签可用于主机的识别和应用的调度,可以在添加节点的时候为其指定。

      假设目前只有一台主机,可按以下方式选择:

    • 最后点击点击右侧的复制按钮

  12. ssh 登录到准备添加到 K8S 集群的节点,粘贴并运行上一步复制的命令。

  13. 最后点击完成