编辑 RKE 的cluster.yml
文件时,您可以在文件中配置多种不同的选项,控制 RKE 如何启动 Kubernetes。
为了让用户对如何使用cluster.yml
文件配置 Kubernetes 选项有更好的了解,RKE 提供了几个 yaml 示例,详情请参考yaml 示例。
配置节点选项
配置 Kubernetes 集群选项
- 集群名称
- Kubernetes 版本
- 前缀路径
- 系统镜像
- 默认的 Kubernetes 服务
- 自定义参数、Docker 挂载绑定和额外的环境变量
- 外部 etcd
- 认证方式
- 授权
- 配置事件速率限制
- 云服务提供商
- 审计日志
- RKE 插件
集群层级选项
集群名称
默认情况下,您的集群名称是local
。如果您需要修改集群名称,请打开cluster.yml
文件,找到cluster_name
一栏,修改集群名称。以下代码示例省略了cluster.yaml
文件中的其他参数,展示了如何将集群名称修改为mycluster
。
cluster_name: mycluster
检查 Docker 版本
默认情况下,RKE 会检查所有主机上已安装的 Docker 的版本号,如果 Kubernetes 不支持该版本的 Docker,会导致 RKE 运行失败并且报错。请参考RKE 支持的 Docker 版本,找到您正在使用的 RKE 版本、它支持的 Docker 版本号和 Kubernetes 版本号。如果您不希望在运行 RKE 之前检查 Docker 版本号,您可以打开cluster.yml
文件,找到ignore_docker_version
一栏,并将它的值设定为true
。ignore_docker_version
是一个 boolean 类型的参数,表示在运行 RKE 前是否执行 Docker 版本检测,可选值为true
和false
,默认值为false
。以下代码示例省略了cluster.yaml
文件中的其他参数,展示了如何将ignore_docker_version
的值修改为true
。修改后不会在运行 RKE 前检查所有主机的 Docker 版本号。
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
一栏,将已有的存储路径修改为您想要的路径,如下方代码样例所示。
prefix_path: /opt/custom_path
集群级 SSH 密钥路径
RKE 使用ssh
连接到主机。通常情况下,每个节点都会在nodes
部分为每个 ssh 密钥设置一个独立的路径,即 ssh_key_path
,但如果您在集群配置文件中拥有一个能够访问所有主机的 SSH 密钥,您可以在顶层设置该 ssh 密钥的路径。否则,您会在nodes中设置 ssh 密钥路径。
如果在集群级和节点级都定义了 ssh 密钥路径,那么 RKE 会优先使用节点层级的密钥。
ssh_key_path: ~/.ssh/test
SSH Agent
RKE 支持使用本地 ssh 代理的 ssh 连接配置。这个选项的默认值是 false
,如果您想设置使用本地 ssh 代理,请打开cluster.yml
文件,找到ssh_agent_auth
一栏,将默认值修改为true
,如下方代码样例所示。
ssh_agent_auth: true
如果您想使用带有口令的 SSH 私钥,您需要将您的密钥添加到ssh-agent
中,并配置环境变量SSH_AUTH_SOCK
。
eval "$(ssh-agent -s)"
Agent pid 3975
$ ssh-add /home/user/.ssh/id_rsa
Enter passphrase for /home/user/.ssh/id_rsa:
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
$ echo $SSH_AUTH_SOCK
/tmp/ssh-118TMqxrXsEx/agent.3974
插件 job 连接超时
您可以定义 RKE 插件及其连接超时的时间,在 Kubernetes 集群成功运行后,RKE 以 Kubernetes job的形式运行插件。如果连接超时,RKE 将停止尝试检索 job 状态,超时的单位是秒。默认超时值为30
秒。