K8S版本升级

1  检查版本号

升级版本最好不超过2个版本,本例子版本原来是1.18.2

[root@k8s-master01 ~]# kubectl get nodes
NAME           STATUS   ROLES    AGE    VERSION
k8s-master01   Ready    master   339d   v1.18.2
k8s-worker01   Ready    <none>   338d   v1.18.2
k8s-worker02   Ready    <none>   338d   v1.18.2

查看最新版本号

yum list --showduplicates kubeadm
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.cn99.com
已安装的软件包
kubeadm.x86_64                       1.18.2-0                        @kubernetes
可安装的软件包
kubeadm.x86_64                       1.6.0-0                         kubernetes 
kubeadm.x86_64                       1.6.1-0                         kubernetes 
kubeadm.x86_64                       1.6.2-0                         kubernetes 
kubeadm.x86_64                       1.6.3-0                         kubernetes 
kubeadm.x86_64                       1.6.4-0                         kubernetes 
kubeadm.x86_64                       1.6.5-0                         kubernetes 
kubeadm.x86_64                       1.6.6-0                         kubernetes 
kubeadm.x86_64                       1.6.7-0                         kubernetes 
kubeadm.x86_64                       1.6.8-0                         kubernetes 
kubeadm.x86_64                       1.6.9-0                         kubernetes 
kubeadm.x86_64                       1.6.10-0                        kubernetes 
kubeadm.x86_64                       1.6.11-0                        kubernetes 
kubeadm.x86_64                       1.6.12-0                        kubernetes 
kubeadm.x86_64                       1.6.13-0                        kubernetes 
kubeadm.x86_64                       1.7.0-0                         kubernetes 
kubeadm.x86_64                       1.7.1-0                         kubernetes 
kubeadm.x86_64                       1.7.2-0                         kubernetes 
kubeadm.x86_64                       1.7.3-1                         kubernetes 
kubeadm.x86_64                       1.7.4-0                         kubernetes 
kubeadm.x86_64                       1.7.5-0                         kubernetes 
kubeadm.x86_64                       1.7.6-1                         kubernetes 
kubeadm.x86_64                       1.7.7-1                         kubernetes 
kubeadm.x86_64                       1.7.8-1                         kubernetes 
kubeadm.x86_64                       1.7.9-0                         kubernetes 
kubeadm.x86_64                       1.7.10-0                        kubernetes 
kubeadm.x86_64                       1.7.11-0                        kubernetes 
kubeadm.x86_64                       1.7.14-0                        kubernetes 
kubeadm.x86_64                       1.7.15-0                        kubernetes 
kubeadm.x86_64                       1.7.16-0                        kubernetes 
kubeadm.x86_64                       1.8.0-0                         kubernetes 
kubeadm.x86_64                       1.8.0-1                         kubernetes 
kubeadm.x86_64                       1.8.1-0                         kubernetes 
kubeadm.x86_64                       1.8.2-0                         kubernetes 
kubeadm.x86_64                       1.8.3-0                         kubernetes 
kubeadm.x86_64                       1.8.4-0                         kubernetes 
kubeadm.x86_64                       1.8.5-0                         kubernetes 
kubeadm.x86_64                       1.8.6-0                         kubernetes 
kubeadm.x86_64                       1.8.7-0                         kubernetes 
kubeadm.x86_64                       1.8.8-0                         kubernetes 
kubeadm.x86_64                       1.8.9-0                         kubernetes 
kubeadm.x86_64                       1.8.10-0                        kubernetes 
kubeadm.x86_64                       1.8.11-0                        kubernetes 
kubeadm.x86_64                       1.8.12-0                        kubernetes 
kubeadm.x86_64                       1.8.13-0                        kubernetes 
kubeadm.x86_64                       1.8.14-0                        kubernetes 
kubeadm.x86_64                       1.8.15-0                        kubernetes 
kubeadm.x86_64                       1.9.0-0                         kubernetes 
kubeadm.x86_64                       1.9.1-0                         kubernetes 
kubeadm.x86_64                       1.9.2-0                         kubernetes 
kubeadm.x86_64                       1.9.3-0                         kubernetes 
kubeadm.x86_64                       1.9.4-0                         kubernetes 
kubeadm.x86_64                       1.9.5-0                         kubernetes 
kubeadm.x86_64                       1.9.6-0                         kubernetes 
kubeadm.x86_64                       1.9.7-0                         kubernetes 
kubeadm.x86_64                       1.9.8-0                         kubernetes 
kubeadm.x86_64                       1.9.9-0                         kubernetes 
kubeadm.x86_64                       1.9.10-0                        kubernetes 
kubeadm.x86_64                       1.9.11-0                        kubernetes 
kubeadm.x86_64                       1.10.0-0                        kubernetes 
kubeadm.x86_64                       1.10.1-0                        kubernetes 
kubeadm.x86_64                       1.10.2-0                        kubernetes 
kubeadm.x86_64                       1.10.3-0                        kubernetes 
kubeadm.x86_64                       1.10.4-0                        kubernetes 
kubeadm.x86_64                       1.10.5-0                        kubernetes 
kubeadm.x86_64                       1.10.6-0                        kubernetes 
kubeadm.x86_64                       1.10.7-0                        kubernetes 
kubeadm.x86_64                       1.10.8-0                        kubernetes 
kubeadm.x86_64                       1.10.9-0                        kubernetes 
kubeadm.x86_64                       1.10.10-0                       kubernetes 
kubeadm.x86_64                       1.10.11-0                       kubernetes 
kubeadm.x86_64                       1.10.12-0                       kubernetes 
kubeadm.x86_64                       1.10.13-0                       kubernetes 
kubeadm.x86_64                       1.11.0-0                        kubernetes 
kubeadm.x86_64                       1.11.1-0                        kubernetes 
kubeadm.x86_64                       1.11.2-0                        kubernetes 
kubeadm.x86_64                       1.11.3-0                        kubernetes 
kubeadm.x86_64                       1.11.4-0                        kubernetes 
kubeadm.x86_64                       1.11.5-0                        kubernetes 
kubeadm.x86_64                       1.11.6-0                        kubernetes 
kubeadm.x86_64                       1.11.7-0                        kubernetes 
kubeadm.x86_64                       1.11.8-0                        kubernetes 
kubeadm.x86_64                       1.11.9-0                        kubernetes 
kubeadm.x86_64                       1.11.10-0                       kubernetes 
kubeadm.x86_64                       1.12.0-0                        kubernetes 
kubeadm.x86_64                       1.12.1-0                        kubernetes 
kubeadm.x86_64                       1.12.2-0                        kubernetes 
kubeadm.x86_64                       1.12.3-0                        kubernetes 
kubeadm.x86_64                       1.12.4-0                        kubernetes 
kubeadm.x86_64                       1.12.5-0                        kubernetes 
kubeadm.x86_64                       1.12.6-0                        kubernetes 
kubeadm.x86_64                       1.12.7-0                        kubernetes 
kubeadm.x86_64                       1.12.8-0                        kubernetes 
kubeadm.x86_64                       1.12.9-0                        kubernetes 
kubeadm.x86_64                       1.12.10-0                       kubernetes 
kubeadm.x86_64                       1.13.0-0                        kubernetes 
kubeadm.x86_64                       1.13.1-0                        kubernetes 
kubeadm.x86_64                       1.13.2-0                        kubernetes 
kubeadm.x86_64                       1.13.3-0                        kubernetes 
kubeadm.x86_64                       1.13.4-0                        kubernetes 
kubeadm.x86_64                       1.13.5-0                        kubernetes 
kubeadm.x86_64                       1.13.6-0                        kubernetes 
kubeadm.x86_64                       1.13.7-0                        kubernetes 
kubeadm.x86_64                       1.13.8-0                        kubernetes 
kubeadm.x86_64                       1.13.9-0                        kubernetes 
kubeadm.x86_64                       1.13.10-0                       kubernetes 
kubeadm.x86_64                       1.13.11-0                       kubernetes 
kubeadm.x86_64                       1.13.12-0                       kubernetes 
kubeadm.x86_64                       1.14.0-0                        kubernetes 
kubeadm.x86_64                       1.14.1-0                        kubernetes 
kubeadm.x86_64                       1.14.2-0                        kubernetes 
kubeadm.x86_64                       1.14.3-0                        kubernetes 
kubeadm.x86_64                       1.14.4-0                        kubernetes 
kubeadm.x86_64                       1.14.5-0                        kubernetes 
kubeadm.x86_64                       1.14.6-0                        kubernetes 
kubeadm.x86_64                       1.14.7-0                        kubernetes 
kubeadm.x86_64                       1.14.8-0                        kubernetes 
kubeadm.x86_64                       1.14.9-0                        kubernetes 
kubeadm.x86_64                       1.14.10-0                       kubernetes 
kubeadm.x86_64                       1.15.0-0                        kubernetes 
kubeadm.x86_64                       1.15.1-0                        kubernetes 
kubeadm.x86_64                       1.15.2-0                        kubernetes 
kubeadm.x86_64                       1.15.3-0                        kubernetes 
kubeadm.x86_64                       1.15.4-0                        kubernetes 
kubeadm.x86_64                       1.15.5-0                        kubernetes 
kubeadm.x86_64                       1.15.6-0                        kubernetes 
kubeadm.x86_64                       1.15.7-0                        kubernetes 
kubeadm.x86_64                       1.15.8-0                        kubernetes 
kubeadm.x86_64                       1.15.9-0                        kubernetes 
kubeadm.x86_64                       1.15.10-0                       kubernetes 
kubeadm.x86_64                       1.15.11-0                       kubernetes 
kubeadm.x86_64                       1.15.12-0                       kubernetes 
kubeadm.x86_64                       1.16.0-0                        kubernetes 
kubeadm.x86_64                       1.16.1-0                        kubernetes 
kubeadm.x86_64                       1.16.2-0                        kubernetes 
kubeadm.x86_64                       1.16.3-0                        kubernetes 
kubeadm.x86_64                       1.16.4-0                        kubernetes 
kubeadm.x86_64                       1.16.5-0                        kubernetes 
kubeadm.x86_64                       1.16.6-0                        kubernetes 
kubeadm.x86_64                       1.16.7-0                        kubernetes 
kubeadm.x86_64                       1.16.8-0                        kubernetes 
kubeadm.x86_64                       1.16.9-0                        kubernetes 
kubeadm.x86_64                       1.16.10-0                       kubernetes 
kubeadm.x86_64                       1.16.11-0                       kubernetes 
kubeadm.x86_64                       1.16.11-1                       kubernetes 
kubeadm.x86_64                       1.16.12-0                       kubernetes 
kubeadm.x86_64                       1.16.13-0                       kubernetes 
kubeadm.x86_64                       1.16.14-0                       kubernetes 
kubeadm.x86_64                       1.16.15-0                       kubernetes 
kubeadm.x86_64                       1.17.0-0                        kubernetes 
kubeadm.x86_64                       1.17.1-0                        kubernetes 
kubeadm.x86_64                       1.17.2-0                        kubernetes 
kubeadm.x86_64                       1.17.3-0                        kubernetes 
kubeadm.x86_64                       1.17.4-0                        kubernetes 
kubeadm.x86_64                       1.17.5-0                        kubernetes 
kubeadm.x86_64                       1.17.6-0                        kubernetes 
kubeadm.x86_64                       1.17.7-0                        kubernetes 
kubeadm.x86_64                       1.17.7-1                        kubernetes 
kubeadm.x86_64                       1.17.8-0                        kubernetes 
kubeadm.x86_64                       1.17.9-0                        kubernetes 
kubeadm.x86_64                       1.17.11-0                       kubernetes 
kubeadm.x86_64                       1.17.12-0                       kubernetes 
kubeadm.x86_64                       1.17.13-0                       kubernetes 
kubeadm.x86_64                       1.17.14-0                       kubernetes 
kubeadm.x86_64                       1.17.15-0                       kubernetes 
kubeadm.x86_64                       1.17.16-0                       kubernetes 
kubeadm.x86_64                       1.17.17-0                       kubernetes 
kubeadm.x86_64                       1.18.0-0                        kubernetes 
kubeadm.x86_64                       1.18.1-0                        kubernetes 
kubeadm.x86_64                       1.18.2-0                        kubernetes 
kubeadm.x86_64                       1.18.3-0                        kubernetes 
kubeadm.x86_64                       1.18.4-0                        kubernetes 
kubeadm.x86_64                       1.18.4-1                        kubernetes 
kubeadm.x86_64                       1.18.5-0                        kubernetes 
kubeadm.x86_64                       1.18.6-0                        kubernetes 
kubeadm.x86_64                       1.18.8-0                        kubernetes 
kubeadm.x86_64                       1.18.9-0                        kubernetes 
kubeadm.x86_64                       1.18.10-0                       kubernetes 
kubeadm.x86_64                       1.18.12-0                       kubernetes 
kubeadm.x86_64                       1.18.13-0                       kubernetes 
kubeadm.x86_64                       1.18.14-0                       kubernetes 
kubeadm.x86_64                       1.18.15-0                       kubernetes 
kubeadm.x86_64                       1.18.16-0                       kubernetes 
kubeadm.x86_64                       1.18.17-0                       kubernetes 
kubeadm.x86_64                       1.18.18-0                       kubernetes 
kubeadm.x86_64                       1.18.19-0                       kubernetes 
kubeadm.x86_64                       1.18.20-0                       kubernetes 
kubeadm.x86_64                       1.19.0-0                        kubernetes 
kubeadm.x86_64                       1.19.1-0                        kubernetes 
kubeadm.x86_64                       1.19.2-0                        kubernetes 
kubeadm.x86_64                       1.19.3-0                        kubernetes 
kubeadm.x86_64                       1.19.4-0                        kubernetes 
kubeadm.x86_64                       1.19.5-0                        kubernetes 
kubeadm.x86_64                       1.19.6-0                        kubernetes 
kubeadm.x86_64                       1.19.7-0                        kubernetes 
kubeadm.x86_64                       1.19.8-0                        kubernetes 
kubeadm.x86_64                       1.19.9-0                        kubernetes 
kubeadm.x86_64                       1.19.10-0                       kubernetes 
kubeadm.x86_64                       1.19.11-0                       kubernetes 
kubeadm.x86_64                       1.19.12-0                       kubernetes 
kubeadm.x86_64                       1.19.13-0                       kubernetes 
kubeadm.x86_64                       1.19.14-0                       kubernetes 
kubeadm.x86_64                       1.19.15-0                       kubernetes 
kubeadm.x86_64                       1.19.16-0                       kubernetes 
kubeadm.x86_64                       1.20.0-0                        kubernetes 
kubeadm.x86_64                       1.20.1-0                        kubernetes 
kubeadm.x86_64                       1.20.2-0                        kubernetes 
kubeadm.x86_64                       1.20.4-0                        kubernetes 
kubeadm.x86_64                       1.20.5-0                        kubernetes 
kubeadm.x86_64                       1.20.6-0                        kubernetes 
kubeadm.x86_64                       1.20.7-0                        kubernetes 
kubeadm.x86_64                       1.20.8-0                        kubernetes 
kubeadm.x86_64                       1.20.9-0                        kubernetes 
kubeadm.x86_64                       1.20.10-0                       kubernetes 
kubeadm.x86_64                       1.20.11-0                       kubernetes 
kubeadm.x86_64                       1.20.12-0                       kubernetes 
kubeadm.x86_64                       1.20.13-0                       kubernetes 
kubeadm.x86_64                       1.20.14-0                       kubernetes 
kubeadm.x86_64                       1.21.0-0                        kubernetes 
kubeadm.x86_64                       1.21.1-0                        kubernetes 
kubeadm.x86_64                       1.21.2-0                        kubernetes 
kubeadm.x86_64                       1.21.3-0                        kubernetes 
kubeadm.x86_64                       1.21.4-0                        kubernetes 
kubeadm.x86_64                       1.21.5-0                        kubernetes 
kubeadm.x86_64                       1.21.6-0                        kubernetes 
kubeadm.x86_64                       1.21.7-0                        kubernetes 
kubeadm.x86_64                       1.21.8-0                        kubernetes 
kubeadm.x86_64                       1.22.0-0                        kubernetes 
kubeadm.x86_64                       1.22.1-0                        kubernetes 
kubeadm.x86_64                       1.22.2-0                        kubernetes 
kubeadm.x86_64                       1.22.3-0                        kubernetes 
kubeadm.x86_64                       1.22.4-0                        kubernetes 
kubeadm.x86_64                       1.22.5-0                        kubernetes 
kubeadm.x86_64                       1.23.0-0                        kubernetes 
kubeadm.x86_64                       1.23.1-0                        kubernetes

2 升级

查看kubeadm版本号

# # kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:54:15Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

驱除节点

kubectl drain k8s-master01 --ignore-daemonsets

查看可以升级的版本:

# kubeadm upgrade plan
[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 -oyaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.18.2
[upgrade/versions] kubeadm version: v1.18.2
I0123 21:49:10.342197   17942 version.go:252] remote version is much newer: v1.23.2; falling back to: stable-1.18
[upgrade/versions] Latest stable version: v1.18.20
[upgrade/versions] Latest stable version: v1.18.20
[upgrade/versions] Latest version in the v1.18 series: v1.18.20
[upgrade/versions] Latest version in the v1.18 series: v1.18.20

Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       AVAILABLE
Kubelet     3 x v1.18.2   v1.18.20

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

COMPONENT            CURRENT   AVAILABLE
API Server           v1.18.2   v1.18.20
Controller Manager   v1.18.2   v1.18.20
Scheduler            v1.18.2   v1.18.20
Kube Proxy           v1.18.2   v1.18.20
CoreDNS              1.6.7     1.6.7
Etcd                 3.4.3     3.4.3-0

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

        kubeadm upgrade apply v1.18.20

Note: Before you can perform this upgrade, you have to update kubeadm to v1.18.20.

_____________________________________________________________________

先升级kubeadm到v1.18.20

yum install -y kubeadm-1.18.20-0

以上可见只能升级到v1.18.20,不升级etcd,不加–etcd-upgrade=false就默认升级etcd

kubeadm upgrade apply v1.18.20 --etcd-upgrade=false

提示内容:

kubeadm upgrade apply v1.18.20 --etcd-upgrade=false
[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 -oyaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade/version] You have chosen to change the cluster version to "v1.18.20"
[upgrade/versions] Cluster version: v1.18.2
[upgrade/versions] kubeadm version: v1.18.20
[upgrade/confirm] Are you sure you want to proceed with the upgrade? [y/N]: y
[upgrade/prepull] Will prepull images for components [kube-apiserver kube-controller-manager kube-scheduler]
[upgrade/prepull] Prepulling image for component kube-scheduler.
[upgrade/prepull] Prepulling image for component kube-apiserver.
[upgrade/prepull] Prepulling image for component kube-controller-manager.
[apiclient] Found 1 Pods for label selector k8s-app=upgrade-prepull-kube-apiserver
[apiclient] Found 0 Pods for label selector k8s-app=upgrade-prepull-kube-controller-manager
[apiclient] Found 0 Pods for label selector k8s-app=upgrade-prepull-kube-scheduler
[apiclient] Found 1 Pods for label selector k8s-app=upgrade-prepull-kube-controller-manager
[apiclient] Found 1 Pods for label selector k8s-app=upgrade-prepull-kube-scheduler
[upgrade/prepull] Prepulled image for component kube-apiserver.
[upgrade/prepull] Prepulled image for component kube-controller-manager.
[upgrade/prepull] Prepulled image for component kube-scheduler.
[upgrade/prepull] Successfully prepulled the images for all the control plane components
[upgrade/apply] Upgrading your Static Pod-hosted control plane to version "v1.18.20"...
Static pod: kube-apiserver-k8s-master01 hash: 8a726ebb37b068e754a16cf668a7a35e
Static pod: kube-controller-manager-k8s-master01 hash: 767925630d81048a06b8538a677d7868
Static pod: kube-scheduler-k8s-master01 hash: ee9a7919683b33fc13e88e8d931591da
[upgrade/staticpods] Writing new Static Pod manifests to "/etc/kubernetes/tmp/kubeadm-upgraded-manifests946840149"
W0123 21:57:06.189240   21942 manifests.go:225] the default kube-apiserver authorization-mode is "Node,RBAC"; using "Node,RBAC"
[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-2022-01-23-21-57-06/kube-apiserver.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-apiserver-k8s-master01 hash: 8a726ebb37b068e754a16cf668a7a35e
Static pod: kube-apiserver-k8s-master01 hash: 729750d538579e893ffe4e6935653781
[apiclient] Found 1 Pods for label selector component=kube-apiserver
[upgrade/staticpods] Component "kube-apiserver" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-controller-manager" upgrade
[upgrade/staticpods] Renewing controller-manager.conf certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-controller-manager.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2022-01-23-21-57-06/kube-controller-manager.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-controller-manager-k8s-master01 hash: 767925630d81048a06b8538a677d7868
Static pod: kube-controller-manager-k8s-master01 hash: a7d614b669c8901536196c540f84103d
[apiclient] Found 1 Pods for label selector component=kube-controller-manager
[upgrade/staticpods] Component "kube-controller-manager" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-scheduler" upgrade
[upgrade/staticpods] Renewing scheduler.conf certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-scheduler.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2022-01-23-21-57-06/kube-scheduler.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-scheduler-k8s-master01 hash: ee9a7919683b33fc13e88e8d931591da
Static pod: kube-scheduler-k8s-master01 hash: c871ae39a802385d75a9bc63229003c0
[apiclient] Found 1 Pods for label selector component=kube-scheduler
[upgrade/staticpods] Component "kube-scheduler" upgraded successfully!
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.18" in namespace kube-system with the configuration for the kubelets in the cluster
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.18" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

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

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.

提示还没有升级成功,其实没有升级kubelet及kubectl。

# kubectl get nodes
NAME           STATUS                     ROLES    AGE    VERSION
k8s-master01   Ready,SchedulingDisabled   master   339d   v1.18.2
k8s-worker01   Ready                      <none>   338d   v1.18.2
k8s-worker02   Ready                      <none>   338d   v1.18.2

升级kubelet及kubectl

yum install -y kubelet-1.18.20-0 kubectl-1.18.20-0

重启kubelet

# systemctl daemon-reload
# systemctl restart kubelet

取消不可调度:

kubectl uncordon k8s-master01

查看,发现版本已经更新:

# kubectl get nodes
NAME           STATUS   ROLES    AGE    VERSION
k8s-master01   Ready    master   339d   v1.18.20
k8s-worker01   Ready    <none>   338d   v1.18.2
k8s-worker02   Ready    <none>   338d   v1.18.2

2  升级worker节点

worker节点安装:

yum install -y kubeadm-1.18.20-0

master节点驱除:

kubectl drain k8s-worker01 --delete-local-data --ignore-daemonsets

worker节点升级:

kubeadm upgrade node

worker节点安装kubelet及kubectl:

 yum install -y kubelet-1.18.20-0 kubectl-1.18.20-0

worker节点重启kubelet:

# systemctl daemon-reload
# systemctl restart kubelet

master节点取消不可调度:

 kubectl uncordon k8s-worker01

master节点查看:

# kubectl get nodes
NAME           STATUS   ROLES    AGE    VERSION
k8s-master01   Ready    master   339d   v1.18.20
k8s-worker01   Ready    <none>   338d   v1.18.20
k8s-worker02   Ready    <none>   338d   v1.18.2

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

### Kubernetes 版本升级与降级的方法及注意事项 #### 升级方法 对于Kubernetes集群的版本升级,通常建议遵循官方文档中的指导流程。主要步骤涉及更新控制平面组件以及节点上的kubelet服务。 - **使用kubeadm工具进行升级** 对于通过`kubeadm`初始化部署的集群来说,可以利用该命令来完成整个过程: ```bash sudo apt-get update && sudo apt-get install -y kubeadm=<version> ``` 接着执行计划内的滚动升级操作以确保所有工作负载都能平稳过渡至新版本[^1]。 - **手动方式** 如果不是采用自动化工具管理,则需单独处理master和worker节点上各个二进制文件及其配置项。这可能涉及到下载对应的新版软件包并替换旧有的可执行程序;同时调整API server、controller manager等核心进程的相关参数设置。 #### 降级方法 当遇到不兼容变更或其他问题时,有时不得不考虑回滚到之前的稳定状态。此时应该注意保存好现有环境的信息备份,并按照相反顺序依次恢复先前版本的服务端口映射关系、镜像标签以及其他自定义资源对象定义。 - **借助etcd快照机制实现快速倒退** etcd作为存储元数据的关键部件,在每次重要变动前都应创建其当前状况的一份副本。一旦决定要实施降级措施,就可以依据这些历史记录迅速重建早先时刻的数据结构[^2]。 - **重置集群重新加入节点** 另一种较为彻底的做法就是完全解散现有的网络连接,让各成员脱离原有群组后再依照指定的目标发行版规格逐一纳入新的集体之中。此过程中务必谨慎对待持久卷声明(PVC)所关联的实际磁盘位置以免造成不必要的损失。 #### 注意事项 无论是在做升还是降的动作之前,都需要充分评估潜在风险并对业务连续性做出妥善安排。具体而言: - 测试阶段不可或缺——尽可能在一个隔离环境中先行验证待选方案的有效性和安全性; - 关注社区动态和技术支持渠道获取最新消息; - 预留足够的时间窗口用于应对突发情况的发生; - 记录详细的日志便于事后追溯分析根本原因所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值