腾讯云TKE“无损业务”升级TKE节点的方法

  • 2019 年 12 月 10 日
  • 筆記

腾讯云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

升级实例

升级前TKE节点版本

设置节点不为不可调度

驱逐节点下的非DaemonSet类型的pod

部分pod驱逐失败时,手工结束不能正常结束的pod

部分pod驱逐失败时,重新部署不能正常驱逐的pod

移除TKE节点

重新将TKE节点a所在CVM加入TKE集群

节点成功加入口,确认TKE节点版本已升级为最新