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-1-13/