RKE 支持为 worker、controlplane、etcd 主机添加或删除节点。
您可以通过修改cluster.yml
文件的内容,添加额外的节点,并指定它们在 Kubernetes 集群中的角色;或从cluster.yml
中的节点列表中删除节点信息,以达到删除节点的目的。
具体安装步骤参考:Kubernetes rke 集群安装
添加或删除 worker 节点。
通过运行rke up --update-only
,只添加或删除工作节点。这将会忽略除了cluster.yml
中的工作节点以外的其他内容。
注意
使用
--update-only
添加或删除 worker 节点时,可能会触发插件或其他组件的重新部署或更新。
以下为添加worker节点具体操作
- 现有系统环境
操作系统 | IP | hostnAme |
---|---|---|
Centos7 | 64.115.4.23 | k8s-master |
Centos7 | 64.115.5.100 | k8s-node1 |
Centos7 | 64.115.4.200 | k8s-node2 |
- 添加两台worker节点
操作系统 | IP | hostnAme |
---|---|---|
Centos7 | 64.115.5.111 | K8s-node3 |
Centos7 | 64.115.5.222 | K8s-node4 |
1.初始化服务器
对新增的服务器进行初始化操作,简单写了个脚本,脚本内容如下,部分参数需根据自己环境进行修改。
#!/bin/bash
set -x
#k8s集群安装服务器初始化脚本
#安装依赖包
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wgetvimnet-tools git
#设置防火墙为 Iptables 并设置空规则
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save
#关闭 SELINUX
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab && setenforce 0 && sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#同步时间
ntpdate ntp3.aliyun.com
#调整系统时区
#设置系统时区为中国/上海
timedatectl set-timezone Asia/Shanghai
#将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
#配置域名解析
cat >> EOF > /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
64.115.4.23 k8s-master
64.115.5.100 k8s-node1
64.115.5.200 k8s-node2
64.115.5.111 k8s-node3
64.115.5.222 k8s-node4
EOF
#修改主机名
hostnamectl set-hostname k8s-node3
# docker阿里云源
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
### Install required packages for docker.
yum install -y device-mapper-persistent-data lvm2
yum install -y docker-ce-19.03.8
## Create /etc/docker directory.
mkdir /etc/docker
# Setup daemon.
```bash
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://lqetgo1f.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn/"]
}
EOF
```
mkdir -p /etc/systemd/system/docker.service.d
# Restart Docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
#重启服务器
reboot
- 重启后配置
#创建 rke 用户
#useradd rke
#将rke用户加入docker组
#usermod -aG docker rke
#免密登录(以下master主机操作)
#su rke
#sh-keygen -t rsa
#ssh-copy-id -i /home/rke/.ssh/id_rsa.pub rke@k8s-master
#ssh-copy-id -i /home/rke/.ssh/id_rsa.pub rke@k8s-node1
#ssh-copy-id -i /home/rke/.ssh/id_rsa.pub rke@k8s-node2
#ssh-copy-id -i /home/rke/.ssh/id_rsa.pub rke@k8s-node3
#ssh-copy-id -i /home/rke/.ssh/id_rsa.pub rke@k8s-node4
2.修改cluster.yml
配置文件
主要修改内容是在原有配置文件基础之上添加两台work节点相关配置。
完整配置文件详情参考:Kubernetes rke 集群安装
3.更新集群
rke up --update-only cluster.yml