首页 > kubernetes(k8s) > k8s版本升级 (二进制升级)
2019
11-06

k8s版本升级 (二进制升级)

Kubernetes的版本升级需要考虑到不要让当前集群中正在运行的容
器受到影响。 应对集群中的各Node逐个进行隔离, 然后等待在其上运行
的容器全部执行完成, 再更新该Node上的kubelet和kube-proxy服务, 将
全部Node都更新完成后, 再更新Master的服务。

1.通过官网获取最新版本的二进制包kubernetes.tar.gz, 解压后提
取服务的二进制文件。

当前我本机kubernetes版本是 1.9

要升级到1.15版本

当前各个节点都有哪些组件?

worker节点的服务

master

先更新worker节点,再更新master节点

逐个隔离Node, 等待在其上运行的全部容器工作完成后, 更新
kubelet和kube-proxy服务文件, 然后重启这两个服务

node隔离请看这里 传送门

隔离node1

驱逐node1上的pod

  • –delete-local-data: 即使pod使用了emptyDir也删除
  • –ignore-daemonsets: 忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,会成为死循环;
  • –force: 不加force参数只会删除该NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)
已经将188上的pod驱逐走了

更新 kubelet和kube-proxy服务文件, 然后重启这两个服务

解除隔离

查看当前kubectl版本:

更新master

重启服务

查看集群节点状态

NotReady

why ? 查看组件状态

大佬Qist说 因为1.9和 1.15版本差距较大 1.14以后的版本没有–allow-privileged=true \ 这个参数,所以删除这个参数重新启动组件

重启这2个服务

需要等一会

成功了

项目部署yaml里的api也要更新到最新版本

api 更新到最新

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。