新增节点
通过 kubeadm 初始化后,都会提供 node 加入的 token:
默认 token 的有效期为 24 小时,当过期之后,该 token 就不可用了。
1 2 3 4 5 6
| # master 上重新生成新的 token [root@k8s-master ~]# kubeadm token create --print-join-command kubeadm join 192.168.81.57:6443 --token xv27mz.zx9qvxzr1n9ver8b --discovery-token-ca-cert-hash sha256:e79022dddd20ebaa3304fe62856393cb58a5b5b6e42e51333224e1841bbf49eb [root@k8s-master ~]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS xv27mz.zx9qvxzr1n9ver8b 23h 2021-06-17T09:26:38+08:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
|
1 2
| # 新节点运行token [root@k8s-node2 ~]# kubeadm join 192.168.81.57:6443 --token xv27mz.zx9qvxzr1n9ver8b --discovery-token-ca-cert-hash sha256:e79022dddd20ebaa3304fe62856393cb58a5b5b6e42e51333224e1841bbf49eb
|
1 2 3 4 5 6 7 8 9 10 11 12
| # master 查看新节点的是否加入 [root@k8s-master ~]# kubectl get node NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane,master 70d v1.20.0 k8s-node1 Ready <none> 70d v1.20.0 k8s-node2 NotReady <none> 3s v1.20.0 [root@k8s-master ~]# systemctl restart kubelet [root@k8s-master ~]# kubectl get node NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane,master 70d v1.20.0 k8s-node1 Ready <none> 70d v1.20.0 k8s-node2 Ready <none> 12s v1.20.0
|
node 节点重新加入集群操作【node 节点操作】
node 节点要重新加入集群,需要重置集群状态,命令:kubeadm reset,回车后输入 y 即可
重新加入集群
1
| kubeadm join 192.168.81.57:6443 --token xv27mz.zx9qvxzr1n9ver8b --discovery-token-ca-cert-hash sha256:e79022dddd20ebaa3304fe62856393cb58a5b5b6e42e51333224e1841bbf49eb
|
删除节点
k8s 集群 移除节点操作
- 确认需要移除的节点上面没有部署我们所需要的资源
1
| kubectl get pod -A -o wide |grep -w "node名"
|
- 设置该节点为不可调度 (不分配新的资源到该节点上) (drain 命令已经会自动把 node 设置为不可调度,所以可以省略执行 cordon 命令)
- 确认完成后,先排空节点上的 pod(每个节点上面都会运行一些系统自带的 pod) (daemonset 不会被排出节点)
1
| kubectl drain node --ignore-daemonsets --force
|
- 排空 pod 之后,便可以删除节点了
1
| kubectl delete node node名
|