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/