准备rke安装服务器

rke安装服务器同样也可以用作集群节点,只需要继续做下面的准备集群服务器的相关步骤就行。

下载安装rke

下载安装包Releases · rancher/rke (github.com),linux下使用rke_linux-amd64
将安装包移动到/usr/bin/rke或者/usr/local/bin/rke,并授权。

1
2
mv rke_linux-amd64 /usr/bin/rke
chmod +x /usr/bin/rke

检查rke

1
rke --version

准备集群服务器

服务器常规准备

时间同步

1
2
3
4
5
6
7
ntpdate pool.ntp.org

date

echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org' >>/var/spool/cron/root

crontab -l

关闭防火墙和selinux

1
2
3
4
5
systemctl stop firewalld

systemctl disable firewalld

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

关闭swap

1
2
3
swapoff -a 临时关闭

vi /etc/fstab 永久关闭,注释掉包含swap 的那一行

修改内核参数

1
2
3
4
5
6
7
8
9
10
cat <<EOF >> /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF

#生效
sysctl -p

安装docker

添加yum工具和docker源

1
2
3
4
5
yum install -y yum-utils

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 docker

1
2
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl start docker && systemctl status docker

配置网络加速

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
mkdir -p /etc/docker

cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker",

"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

重启docker

# 重新加载docker配置

sudo systemctl daemon-reload

#重启docker服务

sudo systemctl restart docker

建立rke用户

个人理解不做也可以,直接用root安装即可,对应后面cluster.yml中user填root就行。

1
2
3
4
5
6
7
8
# 创建并授权
useradd rke
passwd rke
usermod -aG docker rke

# 切换到rke验证docker权限
su rke
docker info

免密登录

配置从rke服务器到目标服务器的免密登录

1、服务器A生成证书

# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)

2、服务器B导入秘钥

如果用root,这里把rke换成root
ssh-copy-id rke@remote-ip

安装rke集群

准备集群配置文件

运行rke config命令,在当前路径下创建 cluster.yml文件。这条命令会引导您输入创建集群所需的所有参数,详情请参考集群配置选项

1
rke config --name cluster.yml

直接使用官网样例cluster.yml 文件示例 | Rancher文档,手写一个也可以

安装或升级集群

1
rke up

脚本正常跑完,那么集群应该就可以了,可以用kubectl连接集群看看。

备份相关配置

强烈建议在安装完成后,如果验证集群没有问题,备份cluster.yml、kube_config_cluster.yml、
cluster.rkestate到其他机器或云端。

安装kubectl

参考官网Install and Set Up kubectl on Linux | Kubernetes

1
2
3
4
5
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

1
2
安装kubectl配置
mkdir ~/.kube && cp kube_config_cluster.yml ~/.kube/config
1
kubectl get nodes

调整集群

如果有新增或删除节点的需求,需要新增的节点按照准备集群服务器部分内容预先准备好即可,然后调整cluster.yml,重新rke up,就开始自动调整啦。

要注意的是,不能一次性下掉所有master节点,如果有类似需求,请一个节点一个节点操作,可以直接将cluster.yml中要替换的master节点ip替换掉,相当于执行先上线新节点后上线旧节点的操作,稳妥点,就先增加节点,没问题,再下掉老节点。

参考:
RKE文档 | Rancher | Rancher文档
使用RKE搭建docker-k8s集群_rke部署k8s_~须尽欢的博客-CSDN博客