0
点赞
收藏
分享

微信扫一扫

k8s节点简介、移除节点、新增节点

何以至千里 2022-02-17 阅读 84


简介

Node是Pod真正运行的主机,可以是物理机也可以是虚拟机。

Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源。

为了管理Pod,每个Node节点上至少需要运行container runtime(Docker)、kubelet和kube-proxy服务。

node基本操作:kubectl get nodes,查询所有node

k8s节点简介、移除节点、新增节点_docker


从k8s移除node节点

获取节点列表:kubectl get node

k8s节点简介、移除节点、新增节点_docker_02


确认需要移除的节点上面没有部署我们所需要的资源:kubectl get pod -A -owide |grep "k8s-node02"

k8s节点简介、移除节点、新增节点_javascript_03


设置不可调度(不分配新的资源到该节点上),也就是下线:kubectl cordon k8s-node02

(另外,上线:kubectl uncordon k8s-node02)

检查节点状态,kubectl get nodes

被标记为不可调度节点,节点状态变成:Ready,SchedulingDisabled

k8s节点简介、移除节点、新增节点_javascript_04


驱逐节点上的Pod(先驱赶掉上面的pod,daemonset不会被排出节点,其它的pod自动转移到其它节点;drain意为排出,此时卸载节点,但是没有删除;drain命令会自动把node设置为不可调度,所以可以省略上面执行的cordon命令)

驱逐前,在k8s-node02上

k8s节点简介、移除节点、新增节点_ide_05


kubectl drain k8s-node02 --delete-local-data --force --ignore-daemonsets

k8s节点简介、移除节点、新增节点_ide_06


k8s节点简介、移除节点、新增节点_javascript_07


驱逐后,自动转移到k8s-node01上了

k8s节点简介、移除节点、新增节点_javascript_08


节点上pod都被驱逐后,可以直接移除节点:kubectl delete node k8s-node02

这样就平滑移除了一个 k8s 节点

k8s节点简介、移除节点、新增节点_javascript_09


在被删除的node节点中清空集群数据信息【被删除节点执行】:

清空前:

k8s节点简介、移除节点、新增节点_docker_10


kubeadm reset -f

k8s节点简介、移除节点、新增节点_javascript_11


清空后:

k8s节点简介、移除节点、新增节点_ide_12


k8s新增node节点

新的node需要安装docker和k8s基础组件,参考:​

在master节点查看集群的token值,其中TTL值默认token的有效期为24小时,当过期之后,该token就不可用了。

kubeadm token list

k8s节点简介、移除节点、新增节点_docker_13


上面结果为空,说明过期了,可以master上重新生产token并获取hash值:kubeadm token create --print-join-command

k8s节点简介、移除节点、新增节点_javascript_14

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

k8s节点简介、移除节点、新增节点_javascript_15



获取Token:kubeadm token list | awk -F" " '{print $1}' |tail -n 1

k8s节点简介、移除节点、新增节点_ide_16


将node节点重新添加到k8s集群中【被添加节点执行】

kubeadm join 192.168.117.171:6443 --token e3teen.vkisycda6z20glxw --discovery-token-ca-cert-hash sha256:196a26bd21bb2e277fae1cebd247723af113207fb5b11eab25b51d4041714249

k8s节点简介、移除节点、新增节点_ide_17


master查看新节点的是否加入,如果新加节点是NotReady状态,重启kubelet后就变成Ready了(systemctl restart kubelet)

kubectl get nodes【master执行】

k8s节点简介、移除节点、新增节点_docker_18


kubectl get pods -n kube-system -owide【master执行】

k8s节点简介、移除节点、新增节点_ide_19


验证:调度到指定节点,nodeName: k8s-node02

k8s节点简介、移除节点、新增节点_ide_20


curl 172.27.14.193


k8s节点简介、移除节点、新增节点_javascript_21




============================= 提升自己 ==========================

> > > 1、咨询交流,​

> > > 2、性能测试实战:jmeter+k8s+微服务+skywalking+efk: ​

> > > 3、自动化测试实战: ​​​​

> > > 4、测试基础汇总:​ ​​

> > > 5、声明:如有侵权,请联系删除。

============================= 升职加薪 ==========================


举报

相关推荐

0 条评论