腾讯云TKE“无损业务”升级TKE节点的方法
原理
1. 设置TKE节点为不可调度,记TKE节点名为a;
2. 驱逐节点下的非DaemonSet类型的pod。部分pod驱逐失败时,手工结束不能正常结束的pod;
3. 移除TKE节点a;
4. 重新将TKE节点a所在CVM加入TKE集群,TKE节点a的会被升级为TKE集群主节点大版本的最新release版本;
5. 依次将所有TKE节点执行步骤1至4,完成所有TKE节点的版本升级;
核心指令/界面操作
查看节点:
kubectl get nodes
设置节点为不可调度
kubectl cordon <NodeName>
设置节点为可调度
kubectl uncordon <NodeName>
驱逐节点下的非daemonset类型的pod
kubectl drain <NodeName> --force --ignore-daemonsets --delete-local-data
“--delete-local-data”,对于有本地存储的pod,直接删除文件。如果本地存储的文件不能丢失,需要做其它处理。
查看所有命名空间
kubectl get ns
查看命名空间下的pod
kubectl get pod -o wide -n <Namespace>
强制删除不能正常结束的pod
kubectl delete pod <PodName> -n <Namespace> --force --grace-period=0