1、升级前的版本确认(相同的大版本号下的小版本升级还是跨版本升级

  例如:从1.12.0升级到1.12.7 或者 从1.12.7升级到1.13.0

2、配置kubernetes安装源(已配置kubernetes源,此处跳过

  Debian/Ubuntu添加源方式:

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubelet kubeadm kubectl

  CentOS/RHEL/Fedora添加源方式:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

  注意:如果需要安装特定版本,请参照如下方式

查看版本:
yum --enablerepo=kubernetes list kubelet kubeadm kubectl --showduplicates | sort -r

安装特定版本
yum --enablerepo=kubernetes install kubelet-1.13.0-0 kubeadm-1.13.0-0 kubectl-1.13.0-0

3、验证安装的版本

kubeadm version

4、查看升级后的所需镜像

kubeadm config images list

这里可以提前下载好镜像
kubeadm config images list > images.txt
for i in `cat images.txt`; do docker pull $i; done

5、在主节点上运行如下命令(此命令检查您的群集是否可以升级,并获取可以升级到的版本

kubeadm upgrade plan

6、选择要升级到的版本,然后运行相应的命令(此处从1.12.7版本升级到1.13.0

kubeadm upgrade apply v1.13.0

7、将控制节点设置为不可调度

kubectl drain $NODE --ignore-daemonsets

8、重启控制节点的kubelet服务

systemctl daemon-reload
systemctl restart kubelet

9、逐一将除控制节点以外的其他需要升级的节点设置为不可调度

kubectl cordon $NODENAME
kubectl drain $NODENAME

9、在除控制节点的所有节点上逐一执行如下命令升级(注意执行如下命令前,需要先按照步骤2的方法升级程序包

kubeadm upgrade node config --kubelet-version v1.13.0

10、重新启动升级后节点的kubelet服务

systemctl daemon-reload
systemctl restart kubelet

11、恢复节点为可调度(在控制节点上操作

kubectl uncordon $NODE

参考:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

posted on 2019-04-10 16:32  a120608yby  阅读(1179)  评论(0编辑  收藏  举报