1. 删除node节点

  1. 集群删除node3
kubectl get nodes //获取node节点
kubectl cordon node3 //node3进行隔离
kubectl drain node3 --ignore-daemonsets [--delete-emptydir-data]

  1. node3删除集群
sudo kubeadm reset -f
sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X
sudo ipvsadm -C //如果 proxy使用的是ipvs模式,且安装了ipvsadm命令

  1. *从etcd中删除节点信息
kubectl delete node node3

2 升级K8S

  1. 升级kubelet,kubeadm版本(须在Master节点上,并使用root)
kubeadm upgrade plan //制定升级计划
apt-get update  //ubuntu使用,更新软件包
yum -y update //centos使用,更新软件包
apt-cache madison kubelet //搜索软件包
apt-get install kubelet=xxxx kubeadm=xxx //更新软件包
*systemctl restart kubelet //重启软件包,Ubuntu非必须

  1. 升级K8S(须在Master节点上,并使用root)
kubeadm upgrade plan //制定升级计划
kubeadm upgrade apply xxxxx //升级到指定版本

  1. 升级node节点(步骤和上面差不多)
for x in {1..2};do ssh candidate@node$x sudo apt-get update ;done //使用for循环,更新node节点的软件包
for x in {1..2};do ssh candidate@node$x sudo apt-get install kubelet=xxxx kubeadm=xxx ;done //使用for循环

3 降级K8S集群版本

  1. 降级kubelet,kubeadm版本(须在Master节点上,并使用root)
apt-get install kubelet=xxxx kubeadm=xxx --allow-downgrades //更新软件包
kubeadm upgrade apply xxxxx //降级到指定版本
  1. 降级node节点(步骤和上面差不多)
for x in {1..2};do ssh candidate@node$x sudo apt-get update ;done //使用for循环,更新node节点的软件包
for x in {1..2};do ssh candidate@node$x sudo apt-get install kubelet=xxxx kubeadm=xxx ;done //使用for循环