0、简介
这里只用3台服务器来做一个简单的集群,当前版本是1.28目标升级到1.30
地址 主机名
192.168.160.40 kuber-master-1
192.168.160.41 kuber-master-2
192.168.160.42 kuber-node-1
1、添加yum源
添加1.29版本的源
[kubernetes-29]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/repodata/repomd.xml.key
添加1.30版本的源
[kubernetes-30]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key
2、修改运行时版本
containerd config default > /etc/containerd/config.toml
sed -i 's#sandbox_image = "registry.k8s.io/pause:3.6"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"#g' /etc/containerd/config.toml
vim /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6"
修改为
KUBELET_KUBEADM_ARGS="--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"
systemctl daemon-reload
systemctl restart containerd #重启containerd
systemctl restart kubelet #重启kubelet
3、升级1.29版版本--升级集群master
升级第一个master
yum list --showduplicates kubelet kubeadm kubectl --disableexcludes=kubernetes | grep 1.29
yum install kubeadm-1.29.15-150500.1.1 kubectl-11.29.15-150500.1.1 kubelet-1.29.15-150500.1.1 --disableexcludes=kubernetes -y
kubeadm upgrade plan
kubectl drain master --ignore-daemonsets
kubeadm upgrade apply 1.29.15
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon master
升级其他的master
yum install kubeadm-1.29.15-150500.1.1 kubectl-1.29.15-150500.1.1 kubelet-1.29.15-150500.1.1 --disableexcludes=kubernetes -y
kubectl drain master --ignore-daemonsets
kubeadm upgrade node
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon master
4、升级集群node
和升级其他master的步骤一样
yum install kubeadm-1.29.15-150500.1.1 kubectl-1.29.15-150500.1.1 kubelet-1.29.15-150500.1.1 --disableexcludes=kubernetes -y
kubectl drain node --ignore-daemonsets
kubeadm upgrade node
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon node
5、升级ingress
将ingress的包fetch下来,修改里边的参数
我这里就修改 hostport、service类型NodePort、pod的类型为Daemonset
先升级到4.12.1的版本
helm fetch ingress-nginx/ingress-nginx --version 4.12.1
tar -zxvf ingress-nginx-4.12.1.tgz
helm upgrade ingress-nginx -f values.yaml . --namespace ingress-nginx
6、升级1.30版本--升级集群master
和升级1.29是一样。