k8s日常操作(持续更新ing)

92 阅读2分钟

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>