Kubernetes认证考试自学系列 | 升级第一台master

书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Kubernetes认证考试自学系列 | 汇总_COCOgsta的博客-CSDN博客


步骤1:查看当前版本。

[root@vms15 ~]# kubectl get nodes
NAME            STATUS   ROLES    AGE    VERSION 
vms15.rhce.cc   Ready    master   23m    v1.20.1
vms16.rhce.cc   Ready    <none>   20m    v1.20.1
[root@vms15 ~]#
复制代码

或者通过以下命令查看。

[root@vms15 ~]# kubectl version --short
Client Version: v1.20.1
Server Version: v1.20.1
[root@vms15 ~]#
复制代码

这里显示当前安装的是v1.20.1版本,现在要升级到v1.21.1版本。

步骤2:确定当前yum源里kubeadm的可用版本。

[root@vms15 ~]# yum list --showduplicates kubeadm --disableexcludes=kubernetes
已加载插件: fastestmirror 
Loading mirror speeds from cached hostfile 
已安装的软件包
kubeadm.x86_64               1.20.1-0           @kubernetes 
可安装的软件包
kubeadm.x86_64               1.6.0-0            kubernetes
   ... 输出 ...
kubeadm.x86_64               1.20.1-0           kubernetes 
kubeadm.x86_64               1.21.1-0           kubernetes 
[root@vms15 ~]#
复制代码

这里显示yum源里kubeadm可用的最新版本为1.21.1。

4.2.1 升级kubeadm

步骤1:升级kubeadm到1.21.1。

[root@vms15 ~]# yum install -y kubeadm-1.21.1-0 --disableexcludes=kubernetes 
已加载插件: fastestmirror 
... 输出 ...
更新完毕:
 kubeadm.x86_64 0:1.21.1-0
 
完毕!
[root@vms15 ~]#
复制代码

步骤2:验证kubeadm的版本。

[root@vms15 ~]# kubeadm version 
kubeadm version: &version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.1",...
[root@vms15 ~]#
复制代码

步骤3:通过kubeadm upgrade plan查看集群是否需要升级,以及能升级的版本。

[root@vms15 ~]# kubeadm upgrade plan 
   ... 输出 ...
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT       CURRENT       AVAILABLE 
 kubelet       2 x v1.20.1     v1.20.8

Upgrade to the latest version in the v1.20 series:

COMPONENT                CURRENT      AVAILABLE
kube-apiserver           v1.20.1        v1.20.8
kube-controller-manager  v1.20.1        v1.20.8 
kube-scheduler           v1.20.1        v1.20.8
kube-proxy               v1.20.1        v1.20.8
CoreDNS                  1.7.0          v1.8.0
etcd                     3.4.13-0       3.4.13-0

You can now apply the upgrade by executing the following command:

   kubeadm upgrade apply v1.20.8

--------------------------------------------------------------------
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT       CURRENT         AVAILABLE
kubelet       2 x v1.20.1        v1.21.1

Upgrade to the latest stable version:

COMPONENT                   CURRENT     AVAILABLE 
kube-apiserver              v1.20.1     v1.21.1
kube-controller-manager     v1.20.1     v1.21.1
kube-scheduler              v1.20.1     v1.21.1
kube-proxy                  v1.20.1     v1.21.1
CoreDNS                     1.7.0       v1.8.0
etcd                        3.4.13-0    3.4.13-0

You can now apply the upgrade by executing the following command:

   kubeadm upgrade apply v1.21.1
   ... 输出 ...
[root@vms15 ~]#
复制代码

此命令检查集群是否可以升级,以及可以获取到的升级版本。

步骤4:把master设置为维护模式,并清空上面运行的pod。

[root@vms15 ~]#
[root@vms15 ~]# kubectl drain vms15.rhce.cc --ignore-daemonsets 
node/vms15.rhce.cc cordoned 
WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-zlkm4, kube-system/kube-proxy-kgcpx 
node/vms15.rhce.cc drained 
[root@vms15 ~]#
[root@vms15 ~]# kubectl get nodes 
NAME               STATUS                        ROLES    AGE   VERSION
vms15.rhce.cc      Ready, SchedulingDisabled     master   2h    v1.20.1
vms16.rhce.cc      Ready                         <none>   2h    v1.20.1
[root@vms15 ~]#
复制代码

注意:kubectl drain可以在升级集群的命令kubeadm upgrade apply运行之前执行,也可以在其之后执行,这里是在其之前执行的。

4.2.2 升级kubernetes集群里master上的各个组件

kubeadm升级之后,下面开始利用kubeadm命令升级master上的各个组件。

注意,要提前导入coredns-1.21.tar。

步骤1:开始升级kubernetes集群。

[root@vms15 ~J# kubeadm upgrade apply v1.21.1
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
   ... 输出 ...
[upgrade/version] You have chosen to change the cluster version to "v1.21.1"
[upgrade/versions] Cluster version: v1.20.1
[upgrade/versions] kubeadm version: v1.21.1
[upgrade/confirm] Are you sure you want to proceed with the upgrade?[y/N]: y
   ... 输出 ...
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

[upgrade/successful] SUCCESS!Your cluster was upgraded to "v1.21.1". Enjoy!

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
[root@vms15 ~]#
复制代码

步骤2:升级完毕之后,取消master的维护模式。

[root@vms15 ~]# kubectl uncordon vms15.rhce.cc 
node/vms15.rhce.cc uncordoned
[root@vms15 ~]#
[root@vms15 ~]# kubectl get nodes
NAME             STATUS      ROLES         AGE     VERSION 
vms15.rhce.cc    Ready       master         2h     v1.20.1
vms16.th ce.cc   Ready       <none>         2h     v1.20.1
[root@vms15 ~]#
复制代码

这里显示vms15的版本仍然是v1.20.1,下面需要升级kubelet和kubectl。

4.2.3 升级master上的kubelet和kubectl

下面开始升级kubelet和kubectl。

步骤1:安装v1.21.1版本的kubelet及kubectl。

[root@vms15 ~]# yum install -y kubelet-1.21.1-0 kubectl-1.21.1-0 --disableexcludes=kubernetes 
已加载插件: fastestmirror
base                                | 3.6 kB 00:00:00
   ... 输出 ...
更新完毕:
  kubelet.x86_64 0:1.21.1-0            kubectl.x86_64 0:1.21.1-0
完毕!
[root@vms15 ~] #
复制代码

重启服务。

[root@vms15 ~]# systemctl daemon-reload ; systemctl restart kubelet 
[root@vms15 ~]#
复制代码

步骤2:验证kubectl的版本。

[root@vms15 ~]# kubectl version --short 
Client Version: v1.21.1
Server Version: v1.21.1
[root@vms15 ~]#
复制代码

或者用以下命令进行验证。

[root@vms15 ~]# kubectl get nodes 
NAME             STATUS      ROLES   AGE    VERSION
vms15.rhce.cc     Ready      master  2h      v1.21.1
vms16.rhce.cc     Ready      <none>  2h      v1.20.1
[root@vms15 ~]#
复制代码

这里可以看到master已经升级到了v1.21.1,但是worker还没升级。

如果环境里有其他master,升级第二台master的步骤和前面的步骤是一样的,只是把命令kubeadm upgrade apply v1.21.1换成kubeadm upgrade node即可。

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/130541133