RKE 部署 Kubernetes

节点规划

IP Role
192.168.0.10 rke部署节点
192.168.0.11 control plane, etcd, worker

规划说明:单独选择了一台服务器192.168.0.10作为部署节点,在部署节点上使用rke为目标服务器192.168.0.11安装最小的Kubernetes环境,两台机器的操作系统均为 CentOS

环境准备

  1. 安装 RKE - 需要在部署节点(192.168.0.10)上安装 RKE 二进制包,官方链接
  2. 创建非 root 用户 - 需要在目标节点(192.168.0.11)上创建非 root 用户,用来与部署节点进行 SSH 连接
1
2
3
groupadd docker
useradd docker_user
usermod -aG docker docker_user
  1. 配置 SSH 免密登录 - 由于 RKE 通过 SSH tunnel 技术安装部署 k8s 集群,需要配置 RKE 所在节点到 k8s 各节点的 SSH 免密登录。(如果 RKE 所在节点也需要加入到 k8s 集群中,需要配置到本机的 SSH 免密登录)
1
2
3
4
# 在192.168.0.10上创建秘钥
ssh-keygen
# 将生成秘钥的公钥分发给各个节点
ssh-copy-id docker_user@192.168.0.11
  1. 安装 docker - 由于 RKE 通过 docker 镜像rancher/hyperkube启动 k8s 组件,因此需要在 k8s 集群的各个节点上安装 docker,需注意要安装 k8s 支持的 docker 版本
1
2
3
4
5
6
7
8
# 安装yum仓库管理工具
yum install -y yum-utils
# 下载阿里的docker-ce仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看选择docker-ce各版本
yum list docker-ce --showduplicates|sort –r
# 安装指定版本的docker-ce
yum install docker-ce-18.06.1.ce -y
  1. 关闭 swap - k8s 1.8 开始要求关闭系统的 swap,如果不关闭,默认配置下 kubelet 将无法启动。这里需要关闭所有 k8s worker 节点的 swap
1
2
vi /etc/fstab
# 注释掉 swap 有关行

配置 cluster.yml

关于cluster的详细说明,可以查看官方链接,这里展示一下我的 cluster.yml 配置

1
2
3
4
5
6
7
8
nodes:
- address: 192.168.0.11
user: docker_user
role:
- controlplane
- etcd
- worker
ssh_key_path: /root/.ssh/id_rsa

部署 kubernetes 集群

当 cluster.yml 文件配置完成后,可以通过命令./rke up完成集群的部署任务

k8s集群架构图