编辑 RKE 的cluster.yml文件时,您可以在文件中配置多种不同的选项,控制 RKE 如何启动 Kubernetes。

为了让用户对如何使用cluster.yml文件配置 Kubernetes 选项有更好的了解,RKE 提供了几个 yaml 示例,详情请参考yaml 示例

配置节点选项

配置 Kubernetes 集群选项

集群层级选项

集群名称

默认情况下,您的集群名称是local。如果您需要修改集群名称,请打开cluster.yml文件,找到cluster_name一栏,修改集群名称。以下代码示例省略了cluster.yaml文件中的其他参数,展示了如何将集群名称修改为mycluster

  1. cluster_name: mycluster

检查 Docker 版本

默认情况下,RKE 会检查所有主机上已安装的 Docker 的版本号,如果 Kubernetes 不支持该版本的 Docker,会导致 RKE 运行失败并且报错。请参考RKE 支持的 Docker 版本,找到您正在使用的 RKE 版本、它支持的 Docker 版本号和 Kubernetes 版本号。如果您不希望在运行 RKE 之前检查 Docker 版本号,您可以打开cluster.yml文件,找到ignore_docker_version一栏,并将它的值设定为trueignore_docker_version是一个 boolean 类型的参数,表示在运行 RKE 前是否执行 Docker 版本检测,可选值为truefalse,默认值为false。以下代码示例省略了cluster.yaml文件中的其他参数,展示了如何将ignore_docker_version的值修改为true。修改后不会在运行 RKE 前检查所有主机的 Docker 版本号。

  1. ignore_docker_version: true

Kubernetes 版本

打开cluster.yml文件,找到 kubernetes_version字符串,将原有的版本号修改为新的版本号即可。详情请参考升级必读

RKE 目前不支持回滚 Kubernetes 版本。

前缀路径

RKE 将 ROS、CoreOS 等操作系统的相关资源存储在不同的前缀路径下。默认情况下,RKE 存储这些资源时会添加一个前缀:/opt/rke

例如,已有的/etc/kubernetes最终的存储路径是/opt/rke/etc/kubernetes/var/lib/etcd最终的存储路径是/opt/rke/var/lib/etcd

如果您需要修改默认的存储路径,请打开cluster.yml文件,找到prefix_path一栏,将已有的存储路径修改为您想要的路径,如下方代码样例所示。

  1. prefix_path: /opt/custom_path

集群级 SSH 密钥路径

RKE 使用ssh连接到主机。通常情况下,每个节点都会在nodes部分为每个 ssh 密钥设置一个独立的路径,即 ssh_key_path,但如果您在集群配置文件中拥有一个能够访问所有主机的 SSH 密钥,您可以在顶层设置该 ssh 密钥的路径。否则,您会在nodes中设置 ssh 密钥路径。

如果在集群级和节点级都定义了 ssh 密钥路径,那么 RKE 会优先使用节点层级的密钥。

  1. ssh_key_path: ~/.ssh/test

SSH Agent

RKE 支持使用本地 ssh 代理的 ssh 连接配置。这个选项的默认值是 false,如果您想设置使用本地 ssh 代理,请打开cluster.yml文件,找到ssh_agent_auth一栏,将默认值修改为true,如下方代码样例所示。

  1. ssh_agent_auth: true

如果您想使用带有口令的 SSH 私钥,您需要将您的密钥添加到ssh-agent中,并配置环境变量SSH_AUTH_SOCK

  1. eval "$(ssh-agent -s)"
  2. Agent pid 3975
  3. $ ssh-add /home/user/.ssh/id_rsa
  4. Enter passphrase for /home/user/.ssh/id_rsa:
  5. Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
  6. $ echo $SSH_AUTH_SOCK
  7. /tmp/ssh-118TMqxrXsEx/agent.3974

插件 job 连接超时

您可以定义 RKE 插件及其连接超时的时间,在 Kubernetes 集群成功运行后,RKE 以 Kubernetes job的形式运行插件。如果连接超时,RKE 将停止尝试检索 job 状态,超时的单位是秒。默认超时值为30秒。