kubernetes_24_kubeadm方式安装升级集群

查看可用的升级版本

[root@k8s-170 ~]# dnf list kubeadm --showduplicates --disableexcludes=kubernetes
...

kubeadm.x86_64			1.20.5-0			kubernetes 
kubeadm.x86_64                  1.20.6-0      			kubernetes 
kubeadm.x86_64                  1.21.0-0                        kubernetes

升级第一个master节点

上一篇安装的是 kubeadm 1.20.5,现在升级到1.20.6

## 安装 kubeadm要升级的版本
[root@k8s-170 ~]# dnf install -y kubeadm-1.20.6 --disableexcludes=kubernetes
## 查看版本
[root@k8s-170 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:26:21Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}
## 驱除指定节点的应用,排除 daemonset
[root@k8s-170 ~]# kubectl drain k8s-170.kevin.com --ignore-daemonsets --delete-emptydir-data
## 执行升级计划
[root@k8s-170 ~]# kubeadm upgrade plan

## 应用升级,
[root@k8s-170 ~]# kubeadm upgrade apply v1.20.6
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade/version] You have chosen to change the cluster version to "v1.20.6"
[upgrade/versions] Cluster version: v1.20.5
[upgrade/versions] kubeadm version: v1.20.6
[upgrade/confirm] Are you sure you want to proceed with the upgrade? [y/N]: y  ##输入y,此过程会摘取镜像,耐心等待
[upgrade/prepull] Pulling images required for setting up a Kubernetes cluster
[upgrade/prepull] This might take a minute or two, depending on the speed of your internet connection
[upgrade/prepull] You can also perform this action in beforehand using 'kubeadm config images pull'
[upgrade/apply] Upgrading your Static Pod-hosted control plane to version "v1.20.6"...
Static pod: kube-apiserver-k8s-170.kevin.com hash: 5e81e3e2f6234473878f92852a8e6ac5
Static pod: kube-controller-manager-k8s-170.kevin.com hash: c661680bf514c8d2a3c21e69287f7c70
Static pod: kube-scheduler-k8s-170.kevin.com hash: 90ef142019e6b9a233debe4dccdac1db
[upgrade/etcd] Upgrading to TLS for etcd
Static pod: etcd-k8s-170.kevin.com hash: 832c9b1defe9826de587d45c6adefa82
[upgrade/staticpods] Preparing for "etcd" upgrade
[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade
[upgrade/etcd] Waiting for etcd to become available
[upgrade/staticpods] Writing new Static Pod manifests to "/etc/kubernetes/tmp/kubeadm-upgraded-manifests610705584"
[upgrade/staticpods] Preparing for "kube-apiserver" upgrade
[upgrade/staticpods] Renewing apiserver certificate  ##############升级时重新生成证书日志###################
[upgrade/staticpods] Renewing apiserver-kubelet-client certificate
[upgrade/staticpods] Renewing front-proxy-client certificate
[upgrade/staticpods] Renewing apiserver-etcd-client certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-apiserver.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2021-04-17-22-26-28/kube-apiserver.yaml"
....

## 取消驱除,使节点恢复正常
[root@k8s-170 ~]# kubectl uncordon k8s-170.kevin.com
node/k8s-170.kevin.com uncordoned
[root@k8s-170 ~]#

升级其它master节点

升级 192.168.1.171master节点

## 安装新版本的 kubeadm
[root@k8s-171 ~]# dnf install -y kubeadm-1.20.6 --disableexcludes=kubernetes

## 升级,此过程要拉取镜像,请耐心等待
[root@k8s-171 ~]# kubeadm upgrade node

所有主节点升级kubectl 和 kubelet

所有主节点执行(192.168.1.170和192.168.1.171)

[root@k8s-170 ~]# dnf install -y kubectl-1.20.6 kubelet-1.20.6 --disableexcludes=kubernetes
[root@k8s-170 ~]# systemctl daemon-reload
[root@k8s-170 ~]# systemctl restart kubelet.service

升级计算节点

先在任意master节点执行驱除指定要升级的节点,如先升级 172 worker节点

## 在 master中驱除指定要升级的节点
[root@k8s-170 ~]# kubectl drain k8s-172.kevin.com --ignore-daemonsets --delete-emptydir-data
node/k8s-172.kevin.com cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-flannel-ds-amd64-z8r7g, kube-system/kube-proxy-dqdpj, kube-system/traefik-ingress-controller-984z5
evicting pod kube-system/dashboard-metrics-scraper-596885b75b-4jktk
pod/dashboard-metrics-scraper-596885b75b-4jktk evicted
node/k8s-172.kevin.com evicted
[root@k8s-170 ~]# 

再到要驱除的节点(如这里是k8s-172.kevin.com)执行如下操作

[root@k8s-172 ~]# dnf install -y kubeadm-1.20.6 kubectl-1.20.6 kubelet-1.20.6 --disableexcludes=kubernetes

[root@k8s-172 ~]# kubeadm upgrade node

[root@k8s-172 ~]# systemctl daemon-reload
[root@k8s-172 ~]# systemctl restart kubelet.service

再回到 任意master节点,执行取消驱除,使节点恢复正常

[root@k8s-170 ~]# kubectl uncordon k8s-172.kevin.com
node/k8s-172.kevin.com uncordoned
## 此时,查看所有节点如下,170、171、172节点都升级到 v1.20.6
[root@k8s-170 ~]# kubectl get nodes
NAME                STATUS   ROLES                  AGE   VERSION
k8s-170.kevin.com   Ready    control-plane,master   22h   v1.20.6
k8s-171.kevin.com   Ready    control-plane,master   22h   v1.20.6
k8s-172.kevin.com   Ready    <none>                 22h   v1.20.6
k8s-173.kevin.com   Ready    <none>                 22h   v1.20.5
[root@k8s-170 ~]# 

升级 k8s-173.kevin.com节点也是如此,重复操作一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hellowordx007

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

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

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

打赏作者

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

抵扣说明:

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

余额充值