新增节点
1. 集群内所有节点的hosts文件加上新节点解析
1 2 3 4 5
| vi /etc/hosts
[new-node-ip] [new-node-hostname]
|
2. 进入Master节点,查看当前是否存在可用Token,没有任何输出说明当前没有可用Token
3. 创建Token
结果截图:
4. 再次查看可用Token,可查看Token的一些信息
结果截图:
5. 根据ca的公钥证书数据计算出hash值
1
| openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1
|
结果截图:
6. 新节点安装kubectl、kubeadm、kubelet,版本需和Master的一致
1 2 3
| yum -y install kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3 systemctl enable kubelet systemctl start kubelet
|
7. 把新节点加入到集群中,其中使用到上述获取的Token和ca证书的hash值
1
| kubeadm join <master-ip>:6443 --node-name [new-node-hostname] --token kklhin.swv9pvue5jncxzqs --discovery-token-ca-cert-hash sha256:7e0f436144520310a988005261894d4c82c36c99c0db9e71e4daac5546d5f159
|
移除节点
1. 进入到Master节点,驱逐待移除节点上的pod
参数说明
- –force
当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者 StatefulSet 管理的时候
就需要用–force来强制执行 (例如:kube-proxy)
- –ignore-daemonsets
无视DaemonSet管理下的Pod
- –delete-local-data
如果有mount local volumn的pod,会强制杀掉该pod并把料清除掉
另外如果跟本身的配置讯息有冲突时,drain就不会执行
1
| kubectl drain [node-name] --force --ignore-daemonsets --delete-local-data
|
结果截图
2. 删除节点
1
| kubectl delete node [node-name]
|
3. 进入待删除节点,重置节点
4. (可选)移除待删除节点的Kubernetes网络配置
结果截图
发现有两个Kubernetes的网络配置(flannel.1和cni0)是已无用网络配置,对其进行下线及删除
1 2 3 4 5
| ifconfig cni0 down ifconfig flannel.1 down ip link delete cni0 ip link delete flannel.1 ip a
|
结果截图
(•̀ᴗ•́)و ̑̑