升级Kubernetes集群的Docker版本(亲测)

在Kubernetes集群中,组件版本升级非常快,可能需要不停的进行升级。升级master和node的Docker和Containerd,逐台升级,确保升级节点被驱逐时集群内有足够的资源承载负载,对于生产环境在升级前做好充足验证,避免版本变化而导致的异常产生。本次升级是在测试环境kubernetes集群版本是 v1.17.11,docker版本是18.09.9,本次只升级docker以及对应的Containerd。

一.环境查看

1.查看集群版本

root@master01 ~]# kubectl get node -o wide 
NAME       STATUS   ROLES    AGE      VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
master01   Ready    master   242d     v1.17.11   10.10.20.3    <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://18.9.9
master02   Ready    master   2y136d   v1.17.11   10.10.20.4    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
master03   Ready    master   2y136d   v1.17.11   10.10.20.5    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
work01     Ready    <none>   2y134d   v1.17.11   10.10.20.6    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
work02     Ready    <none>   2y82d    v1.17.11   10.10.20.7    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9

2.查看docker以及Containerd

[root@master01 ~]# containerd -v && docker -v
containerd containerd.io 1.2.13 7ad184331fa3e55e52b890ea95e65ba581ae3429
Docker version 18.09.9, build 039a7df9ba

3.查看安装的docker相关的软件包

[root@master01 ~]# rpm -qa | grep docker
docker-ce-cli-18.09.9-3.el7.x86_64
docker-ce-18.09.9-3.el7.x86_64

4.查看containered对应的软件包

[root@master01 ~]# rpm -qa | grep container
containerd.io-1.2.13-3.1.el7.x86_64
container-selinux-2.107-3.el7.noarch

二.升级过程

先升级node节点,再升级master,采用逐台升级,本次升级的docker版本从ocker-ce-18.09.9-3.el7.x86_64升级到docker-ce-20.10.12-3.el7.x86_64.

1.配置docker的yum源

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

2.腾空节点(首先在node节点执行,之后再在master节点执行),本次以worker02为例。

kubectl drain work02  --ignore-daemonsets --delete-local-data --force

输出:

node/work02 cordoned
WARNING: deleting Pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: default/init-demo, default/kucc4
evicting pod "init-demo"
evicting pod "kucc4"
evicting pod "ds.kusc00201-7c7bdb685c-l7xkk"
evicting pod "mysql-doraemon-74874995b4-vnpgp"
evicting pod "nginx-5d78bdd449-9t2zx"
pod/ds.kusc00201-7c7bdb685c-l7xkk evicted
pod/nginx-5d78bdd449-9t2zx evicted
pod/mysql-doraemon-74874995b4-vnpgp evicted
pod/init-demo evicted
pod/kucc4 evicted
node/work02 evicted

2.停掉拟升级节点的kubelet和docker服务

systemctl stop kubelet

systemctl stop docker

3.查看docket有哪些版本

[root@master01 ~]#  yum list docker-ce --showduplicates | sort -r


输出:
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
 * updates: mirrors.huaweicloud.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
Installed Packages
 * extras: mirrors.tuna.tsinghua.edu.cn
docker-ce.x86_64            3:20.10.9-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.17-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.16-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.15-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.14-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.13-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.12-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.11-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.10-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:20.10.0-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.9-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.8-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.15-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.14-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.1-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:19.03.13-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.12-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.11-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.10-3.el7                   docker-ce-stable 
docker-ce.x86_64            3:19.03.0-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.9-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.9-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.1-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.0-3.el7                    docker-ce-stable 
docker-ce.x86_64            18.06.3.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.06.2.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.06.1.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.06.0.ce-3.el7                   docker-ce-stable 
docker-ce.x86_64            18.03.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            18.03.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.12.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.12.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.09.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.09.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.06.2.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.06.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.06.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.03.3.ce-1.el7                   docker-ce-stable 
docker-ce.x86_64            17.03.2.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable 
 * base: mirrors.huaweicloud.com
Available Packages

4.卸载旧版本docker

-bash-4.2# yum remove docker docker-ce-cli

输出:
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
No Match for argument: docker
Resolving Dependencies
--> Running transaction check
---> Package docker-ce-cli.x86_64 1:18.09.9-3.el7 will be erased
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-18.09.9-3.el7.x86_64
--> Running transaction check
---> Package docker-ce.x86_64 3:18.09.9-3.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                           Arch                                                       Version                                                             Repository                                                             Size
==============================================================================================================================================================================================================================================================================
Removing:
 docker-ce-cli                                                     x86_64                                                     1:18.09.9-3.el7                                                     @docker-ce-stable                                                      72 M
Removing for dependencies:
 docker-ce                                                         x86_64                                                     3:18.09.9-3.el7                                                     @docker-ce-stable                                                      90 M

Transaction Summary
==============================================================================================================================================================================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 163 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
/usr/bin/dockerd has not been configured as an alternative for dockerd
  Erasing    : 3:docker-ce-18.09.9-3.el7.x86_64                                                                                                                                                                                                                           1/2 
  Erasing    : 1:docker-ce-cli-18.09.9-3.el7.x86_64                                                                                                                                                                                                                       2/2 
  Verifying  : 1:docker-ce-cli-18.09.9-3.el7.x86_64                                                                                                                                                                                                                       1/2 
  Verifying  : 3:docker-ce-18.09.9-3.el7.x86_64                                                                                                                                                                                                                           2/2 

Removed:
  docker-ce-cli.x86_64 1:18.09.9-3.el7                                                                                                                                                                                                                                        

Dependency Removed:
  docker-ce.x86_64 3:18.09.9-3.el7                                                                                                                                                                                                                                            

Complete!

5. 升级docker和containerd为最新版本

-bash-4.2# yum install docker-ce-20.10.12-3.el7 
输出:
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:20.10.12-3.el7 will be installed
--> Processing Dependency: containerd.io >= 1.4.1 for package: 3:docker-ce-20.10.12-3.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-20.10.12-3.el7.x86_64
--> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-20.10.12-3.el7.x86_64
--> Running transaction check
---> Package containerd.io.x86_64 0:1.2.13-3.2.el7 will be updated
---> Package containerd.io.x86_64 0:1.6.8-3.1.el7 will be an update
---> Package docker-ce-cli.x86_64 1:20.10.17-3.el7 will be installed
--> Processing Dependency: docker-scan-plugin(x86-64) for package: 1:docker-ce-cli-20.10.17-3.el7.x86_64
---> Package docker-ce-rootless-extras.x86_64 0:20.10.17-3.el7 will be installed
--> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-20.10.17-3.el7.x86_64
--> Processing Dependency: slirp4netns >= 0.4 for package: docker-ce-rootless-extras-20.10.17-3.el7.x86_64
--> Running transaction check
---> Package docker-scan-plugin.x86_64 0:0.17.0-3.el7 will be installed
---> Package fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 will be installed
--> Processing Dependency: libfuse3.so.3(FUSE_3.2)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3(FUSE_3.0)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3()(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
---> Package slirp4netns.x86_64 0:0.4.3-4.el7_8 will be installed
--> Running transaction check
---> Package fuse3-libs.x86_64 0:3.6.1-4.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                                    Arch                                                    Version                                                           Repository                                                         Size
==============================================================================================================================================================================================================================================================================
Installing:
 docker-ce                                                                  x86_64                                                  3:20.10.12-3.el7                                                  docker-ce-stable                                                   23 M
Installing for dependencies:
 docker-ce-cli                                                              x86_64                                                  1:20.10.17-3.el7                                                  docker-ce-stable                                                   29 M
 docker-ce-rootless-extras                                                  x86_64                                                  20.10.17-3.el7                                                    docker-ce-stable                                                  8.2 M
 docker-scan-plugin                                                         x86_64                                                  0.17.0-3.el7                                                      docker-ce-stable                                                  3.7 M
 fuse-overlayfs                                                             x86_64                                                  0.7.2-6.el7_8                                                     extras                                                             54 k
 fuse3-libs                                                                 x86_64                                                  3.6.1-4.el7                                                       extras                                                             82 k
 slirp4netns                                                                x86_64                                                  0.4.3-4.el7_8                                                     extras                                                             81 k
Updating for dependencies:
 containerd.io                                                              x86_64                                                  1.6.8-3.1.el7                                                     docker-ce-stable                                                   33 M

Transaction Summary
==============================================================================================================================================================================================================================================================================
Install  1 Package  (+6 Dependent packages)
Upgrade             ( 1 Dependent package)

Total download size: 97 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/8): containerd.io-1.6.8-3.1.el7.x86_64.rpm                                                                                                                                                                                                          |  33 MB  00:00:11     
(2/8): docker-ce-20.10.12-3.el7.x86_64.rpm                                                                                                                                                                                                             |  23 MB  00:00:11     
(3/8): docker-ce-rootless-extras-20.10.17-3.el7.x86_64.rpm                                                                                                                                                                                             | 8.2 MB  00:00:02     
(4/8): fuse3-libs-3.6.1-4.el7.x86_64.rpm                                                                                                                                                                                                               |  82 kB  00:00:00     
(5/8): fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm                                                                                                                                                                                                         |  54 kB  00:00:00     
(6/8): slirp4netns-0.4.3-4.el7_8.x86_64.rpm                                                                                                                                                                                                            |  81 kB  00:00:00     
(7/8): docker-scan-plugin-0.17.0-3.el7.x86_64.rpm                                                                                                                                                                                                      | 3.7 MB  00:00:00     
(8/8): docker-ce-cli-20.10.17-3.el7.x86_64.rpm                                                                                                                                                                                                         |  29 MB  00:00:04     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                                         6.0 MB/s |  97 MB  00:00:16     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : docker-scan-plugin-0.17.0-3.el7.x86_64                                                                                                                                                                                                                     1/9 
  Installing : 1:docker-ce-cli-20.10.17-3.el7.x86_64                                                                                                                                                                                                                      2/9 
  Installing : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                                                                                                                                           3/9 
  Updating   : containerd.io-1.6.8-3.1.el7.x86_64                                                                                                                                                                                                                         4/9 
  Installing : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                                                                                                                                              5/9 
  Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                                                                                                                                        6/9 
  Installing : 3:docker-ce-20.10.12-3.el7.x86_64                                                                                                                                                                                                                          7/9 
  Installing : docker-ce-rootless-extras-20.10.17-3.el7.x86_64                                                                                                                                                                                                            8/9 
  Cleanup    : containerd.io-1.2.13-3.2.el7.x86_64                                                                                                                                                                                                                        9/9 
  Verifying  : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                                                                                                                                              1/9 
  Verifying  : containerd.io-1.6.8-3.1.el7.x86_64                                                                                                                                                                                                                         2/9 
  Verifying  : docker-ce-rootless-extras-20.10.17-3.el7.x86_64                                                                                                                                                                                                            3/9 
  Verifying  : 1:docker-ce-cli-20.10.17-3.el7.x86_64                                                                                                                                                                                                                      4/9 
  Verifying  : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                                                                                                                                           5/9 
  Verifying  : docker-scan-plugin-0.17.0-3.el7.x86_64                                                                                                                                                                                                                     6/9 
  Verifying  : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                                                                                                                                        7/9 
  Verifying  : 3:docker-ce-20.10.12-3.el7.x86_64                                                                                                                                                                                                                          8/9 
  Verifying  : containerd.io-1.2.13-3.2.el7.x86_64                                                                                                                                                                                                                        9/9 

Installed:
  docker-ce.x86_64 3:20.10.12-3.el7                                                                                                                                                                                                                                           

Dependency Installed:
  docker-ce-cli.x86_64 1:20.10.17-3.el7      docker-ce-rootless-extras.x86_64 0:20.10.17-3.el7      docker-scan-plugin.x86_64 0:0.17.0-3.el7      fuse-overlayfs.x86_64 0:0.7.2-6.el7_8      fuse3-libs.x86_64 0:3.6.1-4.el7      slirp4netns.x86_64 0:0.4.3-4.el7_8     

Dependency Updated:
  containerd.io.x86_64 0:1.6.8-3.1.el7                                                                                                                                                                                                                                        

Complete!

6.启动docker服务

-bash-4.2# systemctl restart  docker

查看状态
-bash-4.2# systemctl status docker
输出:
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2022-08-31 10:59:48 CST; 1s ago
     Docs: https://docs.docker.com
 Main PID: 3685 (dockerd)
    Tasks: 20
   Memory: 42.7M
   CGroup: /system.slice/docker.service
           └─3685 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 31 10:59:47 work02 dockerd[3685]: time="2022-08-31T10:59:47.056821559+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Aug 31 10:59:47 work02 dockerd[3685]: time="2022-08-31T10:59:47.211745089+08:00" level=info msg="Loading containers: start."
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.126311336+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.445690355+08:00" level=info msg="Loading containers: done."
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.534402456+08:00" level=info msg="Docker daemon" commit=459d0df graphdriver(s)=overlay2 version=20.10.12
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.534728281+08:00" level=info msg="Daemon has completed initialization"
Aug 31 10:59:48 work02 systemd[1]: Started Docker Application Container Engine.
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.627941713+08:00" level=info msg="API listen on /var/run/docker.sock"
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.712673010+08:00" level=warning msg="Published ports are discarded when using host network mode"
Aug 31 10:59:48 work02 dockerd[3685]: time="2022-08-31T10:59:48.985802600+08:00" level=warning msg="Published ports are discarded when using host network mode"

7.检查版本

-bash-4.2# containerd -v && docker -v
containerd containerd.io 1.6.8 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
Docker version 20.10.17, build 100c701

8.查看软件docker安装包

-bash-4.2# rpm -qa | grep docker
输出:
docker-ce-cli-20.10.17-3.el7.x86_64
docker-scan-plugin-0.17.0-3.el7.x86_64
docker-ce-20.10.12-3.el7.x86_64
docker-ce-rootless-extras-20.10.17-3.el7.x86_64

9.查看containerd安装包

-bash-4.2# rpm -qa | grep containerd
containerd.io-1.6.8-3.1.el7.x86_64

10.查看docker镜像

-bash-4.2# docker images
REPOSITORY                                                       TAG             IMAGE ID       CREATED         SIZE
busybox                                                          latest          beae173ccac6   8 months ago    1.24MB
nginx                                                            latest          605c77e624dd   8 months ago    141MB
memcached                                                        latest          752e592c22f1   8 months ago    89.1MB
redis                                                            latest          7614ae9453d1   8 months ago    113MB
consul                                                           latest          76802375bc5c   8 months ago    118MB
nginx                                                            <none>          7e4d58f0e5f3   23 months ago   133MB
redis                                                            <none>          41de2cc0b30e   24 months ago   104MB
busybox                                                          <none>          edabd795951a   24 months ago   1.22MB
nginx                                                            <none>          4bb46517cac3   2 years ago     133MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy   v1.17.11        597c722f6011   2 years ago     117MB
consul                                                           <none>          6adcb25542ed   2 years ago     122MB
memcached                                                        <none>          9541a03b5007   2 years ago     82.3MB
jenkins/jenkins                                                  lts             5d1103b93f92   2 years ago     656MB
nginx                                                            1.16            dfcfd8e9a5d3   2 years ago     127MB
quay.io/coreos/flannel                                           v0.12.0-amd64   4e9f801d2217   2 years ago     52.8MB
polinux/stress                                                   latest          df58d15b053d   2 years ago     9.74MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy   v1.16.4         091df896d78f   2 years ago     86.1MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns      1.6.5           70f311871ae1   2 years ago     41.6MB
registry.cn-beijing.aliyuncs.com/abcdocker/jenkins               v1.2            1040138b5448   3 years ago     1.01GB
rancher/rancher-agent                                            v2.2.4          7b50ddb5354c   3 years ago     290MB
quay.io/prometheus/node-exporter                                 v0.18.1         e5a616e4b9cf   3 years ago     22.9MB
quay.io/coreos/kube-rbac-proxy                                   v0.4.1          70eeaa7791f2   3 years ago     41.3MB
mysql                                                            5.6.41          085b9b6ec8a9   3 years ago     256MB
quay.io/external_storage/nfs-client-provisioner                  latest          16d2f904b0d8   4 years ago     45.5MB
cnych/jenkins                                                    jnlp            d68e6cfb2be2   4 years ago     1.29GB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause        3.1             da86e6ba6ca1   4 years ago     742kB
nginx                                                            1.12.0          313ec0a602bc   5 years ago     107MB
nginx                                                            1.11.9          cc1b61406712   5 years ago     182MB
nginx                                                            1.9.1           94ec7e53edfc   7 years ago     133MB

原来升级前的数据没有丢失

11.启用kubelet

-bash-4.2# systemctl restart  kubelet
-bash-4.2# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Wed 2022-08-31 11:04:37 CST; 6s ago
     Docs: https://kubernetes.io/docs/
 Main PID: 6525 (kubelet)
    Tasks: 15
   Memory: 21.5M
   CGroup: /system.slice/kubelet.service
           └─6525 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=registry.cn-hangz...

Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.580320    6525 docker_service.go:260] Docker Info: &{ID:ENBK:MTLY:ZF26:J5GJ:4GGV:E2Q3:JZQR:U7FI:ODLB:AJTF:KQWL:IJWL Containers:14 ContainersRunning:7 ContainersPaused:0 ContainersStopped:7 Imag...pports d_type true] [
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.580770    6525 docker_service.go:273] Setting cgroupDriver to systemd
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.631428    6525 remote_runtime.go:59] parsed scheme: ""
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.631547    6525 remote_runtime.go:59] scheme "" not registered, fallback to default scheme
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.631771    6525 passthrough.go:48] ccResolverWrapper: sending update to cc: {[{/var/run/dockershim.sock 0  <nil>}] <nil>}
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.631855    6525 clientconn.go:577] ClientConn switching balancer to "pick_first"
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.632031    6525 remote_image.go:50] parsed scheme: ""
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.632053    6525 remote_image.go:50] scheme "" not registered, fallback to default scheme
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.632079    6525 passthrough.go:48] ccResolverWrapper: sending update to cc: {[{/var/run/dockershim.sock 0  <nil>}] <nil>}
Aug 31 11:04:38 work02 kubelet[6525]: I0831 11:04:38.632097    6525 clientconn.go:577] ClientConn switching balancer to "pick_first"
Hint: Some lines were ellipsized, use -l to show in full.

12.master节点查看升级后的集群状态

[root@master01 ~]# kubectl get node -o wide 
NAME       STATUS                     ROLES    AGE      VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
master01   Ready                      master   242d     v1.17.11   10.10.20.3    <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://18.9.9
master02   Ready                      master   2y137d   v1.17.11   10.10.20.4    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
master03   Ready                      master   2y137d   v1.17.11   10.10.20.5    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
work01     Ready                      <none>   2y135d   v1.17.11   10.10.20.6    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://18.9.9
work02     Ready,SchedulingDisabled   <none>   2y82d    v1.17.11   10.10.20.7    <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64        docker://20.10.12

最后一行线上docker版本已经升级

13.解除节点的禁止调度(master节点操作)

[root@master01 ~]# kubectl uncordon work02
输出:
node/work02 uncordoned

以上即完成node节点的升级

二.其他worker节点的升级

采用逐台升级,当一台升级完成后,采用以上步骤,再升级其它节点。

三.master节点升级

如果是单主单从,node升级会有风险,可能导致业务异常;

如果是单台master,且master没有参与集群负载,此时master上的pod为静态pod,此时不需要执行驱逐节点操作,停止docker和kubelet,升级docker即可;

如果是单台master,master参与集群负载,此时驱逐后进行升级。master执行驱逐操作后,工作负载pod会迁移至其它节点,系统pod作为静态pod还会保留,停止docker和kubelet,升级docker即可;

如果是多master,多node,且master没有参与集群负载,此时master上的pod为静态pod,此时不需要执行驱逐节点操作,停止docker和kubelet,升级docker即可;

如果是多master,多node,master参与集群负载,此时驱逐后进行升级,按步骤2顺序进行升级。master执行驱逐操作后,工作负载pod会迁移至其它节点,系统pod作为静态pod还会保留,停止docker和kubelet,升级docker即可。

如下命令可以完成节点docker升级

kubectl drain node_name --ignore-daemonsets --delete-local-data --force
systemctl stop kubelet && systemctl stop docker
yum makecache
yum install docker-ce-20.10.12-3.el7 -y
systemctl restart  docker && systemctl restart  kubelet

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一些节点中的Docker版本是19.03.5。需要注意的是,在Kubernetes集群中,所有节点的Docker版本需要保持一致,以确保集群的稳定性和一致性。 在Kubernetes集群中,每个节点都有一个叫做kubelet的服务,它负责与容器运行时进行通信,管理和监控节点上的容器。当Docker版本不一致时,可能会影响kubelet与Docker之间的通信和兼容性。 在这种情况下,节点nodea的Docker版本是18.09.9,而其他节点的Docker版本是19.03.5,可能会导致以下问题: 1. 功能差异:Docker的新版本通常会引入新的功能和特性,而较旧的版本可能不支持这些功能。因此,在集群中的其他节点上运行的容器可能使用一些nodea节点上不支持的功能,导致容器在nodea节点上无法正常运行。 2. 兼容性问题:不同版本Docker之间可能存在兼容性问题。在Kubernetes集群中,kubelet与Docker之间的通信是非常重要的,如果版本不兼容,可能会导致无法正常启动、停止或管理容器的问题。 为了解决这个问题,有以下几个解决方案: 1. 升级Docker版本:将nodea节点上的Docker版本升级到与其他节点一致的版本,可以使用Docker官方提供的升级方法进行操作。 2. 降级Docker版本:将其他节点的Docker版本降级到与nodea节点一致的版本。在降级之前,需要考虑兼容性和功能差异带来的影响。 3. 使用适配工具:如果无法升级或降级Docker版本,可以尝试使用一些适配工具,例如kubeadm等,来解决版本差异问题。 综上所述,保持Kubernetes集群中所有节点的Docker版本一致是非常重要的,这样可以确保集群的稳定性和一致性。如果出现版本差异问题,需要选择升级、降级或使用适配工具来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忍冬行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值