本期,边肖将为大家带来k8s运维06-kubectl删除节点的过程信息。文章内容丰富,从专业角度进行分析和叙述。看完这篇文章,希望你能有所收获。
一. 本节记录kubectl delete node的执行过程
delete是一个粗略的命令,它会直接驱逐被删除节点上的pod,并由其他节点创建(对于replicaset),然后将被删除的点从master的管理范围中移除,master失去管理控制。如果要将节点返回到其从属位置,必须在节点处重新启动kubelet。
提前查看所有node
以删除10.5.0.45为例,参见节点存在.
[root@k8smaster163075~]
$kubectlgetnodes
NAMESTATUSROLESAGEVERSION
10 . 5 . 0 . 44首先,调度disabledone 41 HV 1 . 11 . 3
10.5.0.45Readynone41hv1.11.3
10.5.0.46Readynone41hv1.11.3
10.5.0.47Readynone41hv1.11.3
10.5.0.48Readynone41hv1.11.3
10.5.0.49无就绪41 HV 1.11.3
查看所有pod
10.5.0.45节点有4个pod.
image.png
执行 kubectl delete node 10.5.0.45
[root @ k8smaster 163075 ~]
$ kubectlgetpods-ntest-kub easy-k8s-owide | grep 10 . 5 . 0 . 45
atlas-UAT-deployment
t-5b65898567-85jpb 1/1 Running 0 14m 10.5.45.104 10.5.0.45 <none>
atlas-uat-deployment-5b65898567-8l7gm 1/1 Running 0 41h 10.5.45.102 10.5.0.45 <none>
atlas-uat-deployment-5b65898567-cqzj7 1/1 Running 0 41h 10.5.45.103 10.5.0.45 <none>
atlas-uat-deployment-5b65898567-lzp7k 1/1 Running 0 41h 10.5.45.101 10.5.0.45 <none>
[root@k8smaster163075 ~]
$kubectl delete node 10.5.0.45
node "10.5.0.45" deleted
重新查看pod,看到新建了4台pod
image.png
master查看所有node
-
node已经不在master的控制范围
-
对比kubectl drain/cordon node,
[root@k8smaster163075 ~] $kubectl get nodes NAME STATUS ROLES AGE VERSION 10.5.0.44 Ready,SchedulingDisabled <none> 41h v1.11.3 10.5.0.46 Ready <none> 41h v1.11.3 10.5.0.47 Ready <none> 41h v1.11.3 10.5.0.48 Ready <none> 41h v1.11.3 10.5.0.49 Ready <none> 41h v1.11.3
ssh 到 10.5.0.45 机器
-
docker ps查看容器 已为空
[root@docker000045.ppdgdsl.com ~] $docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
delete节点的恢复
-
重启节点kubelet
-
进入master查看node,节点10.5.0.45出现,AGE=2m16s,刚生效
[root@k8smaster163075 ~] $kubectl get nodes NAME STATUS ROLES AGE VERSION 10.5.0.44 Ready,SchedulingDisabled <none> 42h v1.11.3 10.5.0.45 Ready <none> 2m16s v1.11.3 10.5.0.46 Ready <none> 42h v1.11.3 10.5.0.47 Ready <none> 42h v1.11.3 10.5.0.48 Ready <none> 42h v1.11.3 10.5.0.49 Ready <none> 42h v1.11.3
二. cordon,drain,delete node区别
此三个命令都会使node停止被调度,后期创建的pod不会继续被调度到该节点上,但操作的暴力程度不一
cordon 停止调度
-
影响最小,只会将node调为SchedulingDisabled
-
之后再发创建pod,不会被调度到该节点
-
旧有的pod不会受到影响,仍正常对外提供服务
-
恢复调度
kubectl uncordon node_name
drain 驱逐节点
-
首先,驱逐node上的pod,其他节点重新创建
-
接着,将节点调为** SchedulingDisabled**
-
恢复调度
kubectl uncordon node_name
delete 删除节点
-
首先,驱逐node上的pod,其他节点重新创建
-
然后,从master节点删除该node,master对其不可见,失去对其控制,master不可对其恢复
-
恢复调度,需进入node节点,重启kubelet
-
基于node的自注册功能,节点重新恢复使用
systemctl restart kubelet
上述就是小编为大家分享的k8s运维06-kubectl delete node的过程是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37098.html