简介
Node是Pod真正运行的主机,可以是物理机也可以是虚拟机。
Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源。
为了管理Pod,每个Node节点上至少需要运行container runtime(Docker)、kubelet和kube-proxy服务。
node基本操作:kubectl get nodes,查询所有node
从k8s移除node节点
获取节点列表:kubectl get node
确认需要移除的节点上面没有部署我们所需要的资源:kubectl get pod -A -owide |grep "k8s-node02"
设置不可调度(不分配新的资源到该节点上),也就是下线:kubectl cordon k8s-node02,另外,上线:kubectl uncordon node
检查节点状态,kubectl get nodes
被标记为不可调度节点,节点状态变成:Ready,Schedulingdisabled
驱逐节点上的Pod(先驱赶掉上面的pod,daemonset不会被排出节点;drain 翻译排出,此时卸载节点,但是没有删除)
drain命令会自动把node设置为不可调度,所以可以省略上面执行的cordon命令
kubectl drain k8s-node02 --delete-local-data --force --ignore-daemonsets
节点上pod都被驱逐后,可以直接移除节点:kubectl delete node k8s-node02
这样就平滑移除了一个 k8s 节点
在被删除的node节点中清空集群数据信息【被删除节点执行】:
清空前:
kubeadm reset -f
清空后:
k8s新增node节点
新的node需要安装docker和k8s基础组件
在master节点查看集群的token值,其中TTL值默认token的有效期为24小时,当过期之后,该token就不可用了。
kubeadm token list
上面结果为空,说明过期了,可以master上重新生产token并获取hash值:kubeadm token create --print-join-command
kubeadm join 192.168.117.171:6443 --token e3teen.vkisycda6z20glxw --discovery-token-ca-cert-hash sha256:196a26bd21bb2e277fae1cebd247723af113207fb5b11eab25b51d4041714249
生成永久Token:kubeadm token create --ttl 0 --print-join-command
kubeadm token list
获取Token:kubeadm token list | awk -F" " '{print $1}' |tail -n 1
kubeadm join 192.168.117.171:6443 --token e3teen.vkisycda6z20glxw --discovery-token-ca-cert-hash sha256:196a26bd21bb2e277fae1cebd247723af113207fb5b11eab25b51d4041714249
master查看新节点的是否加入,如果新加节点是NotReady状态,重启kubelet后就变成Ready了(systemctl restart kubelet)
kubectl get nodes【master执行】
kubectl get pods -n kube-system -owide【master执行】
验证:调度到指定节点,nodeName: k8s-node02
curl 172.27.14.193
彻底删除:https://www.cnblogs.com/uncleyong/p/15789371.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。