升级次序:先升级master,后升级node
升级之前的准备:确保已经备份了etcd数据库与master节点的状态
安装kubernetes的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
EOF
yum makecache
安装v1.14.0的kubeadm安装包
yum install -y kubeadm-1.14.0-0 --disableexcludes=kubernetes
卸载作为依赖安装的kubelet1.18.3
rpm -e kubelet-1.18.3-0.x86_64 --nodeps
验证下载的包是否为期望的版本
sudo kubeadm version
期望输出
kubeadm version: &version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:51:21Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
验证集群是否可升级
sudo kubeadm upgrade plan
期望输出
[preflight] Running pre-flight checks.
[upgrade] Making sure the cluster is healthy:
[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‘
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.13.3
[upgrade/versions] kubeadm version: v1.14.0
Awesome, you‘re up-to-date! Enjoy!
执行升级
sudo kubeadm upgrade apply v1.14.0
交互界面输入y,确认升级
期望输出
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.14.0". Enjoy!
升级kubelet与kubectl
yum install -y kubelet-1.14.0-0 kubectl-1.14.0-0 --disableexcludes=kubernetes
重启kubelet
sudo systemctl daemon-reload && systemctl restart kubelet
查看升级结果
NAME STATUS ROLES AGE VERSION
k8s-agent Ready <none> 66m v1.13.3
k8s-cp Ready master 69m v1.14.0
安装kubernetes的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
EOF
yum makecache
安装v1.14.0的kubeadm安装包
yum install -y kubeadm-1.14.0-0 --disableexcludes=kubernetes
卸载作为依赖安装的kubelet1.18.3
rpm -e kubelet-1.18.3-0.x86_64 --nodeps
修改kubelet配置
sudo kubeadm upgrade node config --kubelet-version v1.14.0
升级kubelet与kubectl
yum install -y kubelet-1.14.0-0 kubectl-1.14.0-0 --disableexcludes=kubernetes
重启kubelet
sudo systemctl daemon-reload && systemctl restart kubelet
查看升级结果
NAME STATUS ROLES AGE VERSION
k8s-agent Ready <none> 70m v1.14.0
k8s-cp Ready master 73m v1.14.0
原文:https://www.cnblogs.com/xiaoyuxixi/p/13152298.html