1.修改k8s的NodePort范围(20000-32767)
[root@k8s-master-1 ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
spec:
containers:
- command:
- --service-node-port-range=20000-32767 #添加一行
......
[root@k8s-master-1 ~]# kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
2.etcd数据库备份与恢复
备份:
[root@k8s-master-1 ~]# ETCDCTL_API=3 etcdctl snapshot save snap.db --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key
恢复:
暂停k8s的静态pod:
[root@k8s-master-1 ~]# mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak
[root@k8s-master-1 ~]# mv /var/lib/etcd/ /var/lib/etcd.bak
恢复:
[root@k8s-master-1 ~]#ETCDCTL_API=3 etcdctl snapshot restore snap.db --data-dir=/var/lib/etcd
恢复k8s的静态pod:
[root@k8s-master-1 ~]# mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
2.k8s版本升级(kubeadm)
管理节点:
1、查找最新版本号
[root@k8s-master-1 ~]# yum list --showduplicates kubeadm
2、升级kubeadm
[root@k8s-master-1 ~]# yum install -y kubeadm-1.24.3-0
3、设置不可调度,且驱逐节点上的pod
[root@k8s-master-1 ~]# kubectl cordon k8s-master-1
[root@k8s-master-1 ~]# kubectl drain k8s-master-1 --ignore-daemonsets
4、检查集群是否可升级,并获取可升级的版本
[root@k8s-master-1 ~]# kubeadm upgrade plan
5、执行升级
[root@k8s-master-1 ~]# kubeadm upgrade apply v1.24.3
6、取消不可调度
[root@k8s-master-1 ~]# kubectl uncordon k8s-master-1
7、升级kubelet、kubectl
[root@k8s-master-1 ~]# yum install -y kubelet-1.24.3-0 kubectl-1.24.3-0
8、重启kubelet
[root@k8s-master-1 ~]# systemctl daemon-reload && systemctl restart kubelet
工作节点:
设置不可调度,且驱逐节点上的pod
[root@k8s-master-1 ~]# kubectl cordon k8s-node-1
[root@k8s-master-1 ~]# kubectl drain k8s-node-1 --ignore-daemonsets
升级:
[root@k8s-node-1 ~]# yum -y install kubeadm-1.24.3-0
[root@k8s-node-1 ~]# kubeadm upgrade node
[root@k8s-node-1 ~]# yum -y install kubelet-1.24.3
[root@k8s-node-1 ~]# systemctl daemon-reload && systemctl restart kubelet
取消不可调度
[root@k8s-node-1 ~]# kubectl uncordon k8s-node-1
3.下线节点
[root@k8s-master-1 ~]# kubectl get node
[root@k8s-master-1 ~]# kubectl cordon <node_name>
[root@k8s-master-1 ~]# kubectl drain <node_name> --ignore-daemonsets
[root@k8s-master-1 ~]# kubectl delete node <node_name>