提升CKA认证成功率,CKA真题中的节点维护全攻略!

K8S集群运维过程中可能会有维护Node节点的需求,例如Node操作系统软件存在漏洞,需要对系统进行更新和维护。这里我们以K8S集群节点的操作系统进行更新操作为例。

Kubernetes中的三个命令:cordondrain 以及 delete 都可以实现 node 的停止调度,也就是后面再创建的 pod 不会继续被调度到该节点上,他们之间最大的区别是暴力程度不一样。

设置节点不可调度

命令格式:

kubectl cordon [node name]
  • 临时将节点从Kubernets集群隔离
  • 影响最小,只会将node节点标识为SchedulingDisabled,也就是禁止调度
  • 后面创建的Pod,将不会调度到这个节点
  • 原来节点运行的Pod不受影响,继续对外服务

首先将节点标记为不可调度,避免新的Pod在此节点创建和运行

kubectl cordon k8s-node2

查看节点状态:

root@k8s-master:~# kubectl get node k8s-node2
NAME        STATUS                     ROLES    AGE   VERSION
k8s-node2   Ready,SchedulingDisabled   <none>   5d    v1.28.2

可以看到 k8s-node2为 SchedulingDisabled 表示不可调度。新创建的pod不会调度到这个k8s-node2节点上,原来在k8s-node2的pod依然正常运行。

驱逐节点上的Pod

由于k8s-node2节点上还运行Pod,这样是不能直接对节点上的进行关机升级操作的,需要把这些pod驱逐到其他的节点上。

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

这里有3个参数:

  • --ignore-daemonsets, 忽略DaemonSet 管理的 Pod(避免删除,创建这样的死循环)。
  • --delete-local-data,使用 emptyDir 数据卷的 Pod 也要删除。
  • --force,不是由 ReplicationController 、ReplicaSet 、Job 、DaemonSet 、StatefulSet 管理的Pod(没有绑定任何控制器)也要删除。

提升CKA认证成功率,CKA真题中的节点维护全攻略!_第1张图片

维护节点

等完全把k8s-node2上的Pod驱逐完,就可以对该节点进行软件的升级或硬件的升级。

  • 升级操作系统apt update && apt upgrade

提升CKA认证成功率,CKA真题中的节点维护全攻略!_第2张图片

恢复节点可调度

节点维护结束后,回复可调度状态

kubectl uncordon k8s-node2
root@k8s-master:~# kubectl uncordon k8s-node2
node/k8s-node2 uncordoned
root@k8s-master:~# kubectl get node
NAME         STATUS   ROLES           AGE     VERSION
k8s-master   Ready    control-plane   6d19h   v1.28.2
k8s-node1    Ready    <none>          6d19h   v1.28.2
k8s-node2    Ready    <none>          5d1h    v1.28.2

kubectl delete node

不建议使用kubectl delete node [node name],Node 节点删除,Master 将会失去对其的控制,该节点从集群去除,delete 是一种非常暴力的删除节点方式,驱逐时都是强制干掉容器的进程,并没有做到优雅终止 Pod,相比较而言,drain 相对比较安全。

CKA真题

提升CKA认证成功率,CKA真题中的节点维护全攻略!_第3张图片

切换 k8s 集群环境:kubectl config use-context ek8s
Task
将 ek8s-node-1 节点设置为不可用,然后重新调度该节点上的所有 Pod。

kubectl config use-context ek8s
kubectl cordon ek8s-node-1
kubectl drain cka-node1 --delete-local-data  --ignore-daemonsets --force 

参考文档

  • drain
  • Kubernetes系列(十四)节点维护升级参考
  • Kubernetes 集群-维护节点 - 运维笔记

你可能感兴趣的:(CKA,K8S,docker,kubernetes,CKA,节点维护,容器,K8S)