- 版本升级:1.16.9 -> 1.16.15
1. 控制节点升级
保留原始的kubeadm-config 文件:
kubeadm config view > kubeadm-config.yaml
查看是否可以升级
kubeadm upgrade plan
# 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] Making sure the cluster is healthy:
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.16.9
[upgrade/versions] kubeadm version: v1.16.9
I1008 15:47:02.215286 1610 version.go:251] remote version is much newer: v1.19.2; falling back to: stable-1.16
[upgrade/versions] Latest stable version: v1.16.15
[upgrade/versions] Latest version in the v1.16 series: v1.16.15
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT CURRENT AVAILABLE
Kubelet 4 x v1.16.9 v1.16.15
Upgrade to the latest version in the v1.16 series:
COMPONENT CURRENT AVAILABLE
API Server v1.16.9 v1.16.15
Controller Manager v1.16.9 v1.16.15
Scheduler v1.16.9 v1.16.15
Kube Proxy v1.16.9 v1.16.15
CoreDNS 1.6.2 1.6.2
Etcd 3.3.15 3.3.15-0
You can now apply the upgrade by executing the following command:
kubeadm upgrade apply v1.16.15
Note: Before you can perform this upgrade, you have to update kubeadm to v1.16.15.
_____________________________________________________________________
先将kubeadm和kubectl升级到v1.16.15
# yum makecache fast && yum install -y kubeadm-1.16.15-0 kubectl-1.16.15-0
# kubeadm version #查看kubeadm版本
kubeadm version: &version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.15", GitCommit:"2adc8d7091e89b6e3ca8d048140618ec89b39369", GitTreeState:"clean", BuildDate:"2020-09-02T11:37:34Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
查看升级信息:
kubeadm upgrade apply v1.16.15 --config kubeadm-config.yaml --dry-run
驱逐节点:
kubectl drain k8s-master01 --ignore-daemonsets
执行升级命令:
kubeadm upgrade apply v1.16.15 --config kubeadm-config.yaml
选择yes:
kubeadm upgrade apply v1.16.14 --config kubeadm-config.yaml
[upgrade/config] Making sure the configuration is correct:
[preflight] Running pre-flight checks.
[upgrade] Making sure the cluster is healthy:
[upgrade/version] You have chosen to change the cluster version to "v1.16.14"
[upgrade/versions] Cluster version: v1.16.2
[upgrade/versions] kubeadm version: v1.16.14
[upgrade/confirm] Are you sure you want to proceed with the upgrade? [y/N]:y
更新kubelet
yum install -y kubelet-1.16.15-0
重启 kubelet 服务
systemctl daemon-reload
systemctl restart kubelet
查看node
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready,SchedulingDisabled master 43d v1.16.15
k8s-master02 Ready master 37d v1.16.9
k8s-master03 Ready master 43d v1.16.9
k8s-node01 Ready <none> 43d v1.16.9
恢复节点:
kubectl uncordon k8s-master01
查看节点:
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 43d v1.16.15
k8s-master02 Ready master 37d v1.16.9
k8s-master03 Ready master 43d v1.16.9
k8s-node01 Ready <none> 43d v1.16.9
更新工作节点
驱逐节点:
kubectl drain k8s-node01 --ignore-daemonsets
查看节点:
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 43d v1.16.15
k8s-master02 Ready master 37d v1.16.15
k8s-master03 Ready master 43d v1.16.15
k8s-node01 Ready,SchedulingDisabled <none> 43d v1.16.9
升级节点的kubectl和kubeadm
yum install -y kubeadm-1.16.15-0 kubectl-1.16.15-0
执行升级命令
kubeadm upgrade node
更新成功
[upgrade] Reading configuration from the cluster...
[upgrade] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[upgrade] Skipping phase. Not a control plane node[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.16" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
升级kubelet
yum install -y kubelet-1.16.15-0
重启kubelet
systemctl daemon-reload
systemctl restart kubelet
在控制节点查看node
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 43d v1.16.15
k8s-master02 Ready master 37d v1.16.15
k8s-master03 Ready master 43d v1.16.15
k8s-node01 Ready,SchedulingDisabled <none> 43d v1.16.15
接触禁止调度:
kubectl uncordon k8s-node01
查看节点:
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 43d v1.16.15
k8s-master02 Ready master 37d v1.16.15
k8s-master03 Ready master 43d v1.16.15
k8s-node01 Ready <none> 43d v1.16.15
网友评论