织梦房产网站模板,网站建设哪家,腾讯企业邮箱免费版,腾讯企业邮箱pc版入口Etcd数据库备份与恢复 需要先安装etcd备份工具yum install etcd -y按不同安装方式执行不同备份与恢复kubeadm部署方式#xff1a; 备份#xff1a;ETCDCTL_API3 etcdctl snapshot save snap.db --endpointshttps://127.0.0.1:2379 --cacert/etc/kubernetes/pki/etcd/ca.cr…
Etcd数据库备份与恢复
需要先安装etcd备份工具yum install etcd -y 按不同安装方式执行不同备份与恢复kubeadm部署方式
备份ETCDCTL_API3 etcdctl snapshot save snap.db --endpointshttps://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 恢复1、先暂停kube-apiserver和etcd容器 mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak mv /var/lib/etcd/ /var/lib/etcd.bak
2、恢复 ETCDCTL_API3 etcdctl snapshot restore snap.db --data-dir/var/lib/etcd
3、启动kube-apiserver和etcd容器 mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests 二进制部署方式
备份ETCDCTL_API3 etcdctl \ snapshot save snap.db \ --endpointshttps://192.168.31.71:2379 \ --cacert/opt/etcd/ssl/ca.pem \ --cert/opt/etcd/ssl/server.pem \ --key/opt/etcd/ssl/server-key.pem 恢复1、先暂停kube-apiserver和etcd systemctl stop kube-apiserver systemctl stop etcd mv /var/lib/etcd/default.etcd /var/lib/etcd/default.etcd.bak
2、在每个节点上恢复 ETCDCTL_API3 etcdctl snapshot restore snap.db \ --name etcd-1 \ --initial-clusteretcd-1https://192.168.31.71:2380,etcd2https://192.168.31.72:2380,etcd-3https://192.168.31.73:2380 \ --initial-cluster-tokenetcd-cluster \ --initial-advertise-peer-urlshttps://192.168.31.71:2380 \ --data-dir/var/lib/etcd/default.etcd
3、启动kube-apiserver和etcd systemctl start kube-apiserver systemctl start etcd K8s集群版本升级 注意事项 • 升级前必须备份所有组件及数据例如etcd • 千万不要跨多个小版本进行升级例如从1.16升级到1.19 • 在测试环境经过多次演练实操才能上生产环境 升级管理节点 1、查找最新版本号 yum list --showduplicates kubeadm 2、升级kubeadm yum install -y kubeadm-1.23.0-0 3、驱逐node上的pod且不可调度 kubectl drain k8s-master --ignore-daemonsets 4、检查集群是否可以升级并获取可以升级的版本升级计划 kubeadm upgrade plan 5、执行升级按照升级计划给出的版本作为参考进行升级 kubeadm upgrade apply v1.23.0 6、升级kubelet和kubectl yum install -y kubelet-1.23.0-0 kubectl-1.23.0-0 7、重启kubelet systemctl daemon-reload
systemctl restart kubelet 8、取消不可调度重新上线 kubectl uncordon k8s-master 升级工作节点1、升级kubeadm yum install -y kubeadm-1.23.0-0 2、驱逐node上的pod且不可调度 kubectl drain k8s-node1 --ignore-daemonsets 3、升级kubelet配置 kubeadm upgrade node 4、升级kubelet和kubectl yum install -y kubelet-1.23.0-0 kubectl-1.23.0-0 5、重启kubelet systemctl daemon-reload
systemctl restart kubelet 6、取消不可调度重新上线 kubectl uncordon k8s-node1 K8s集群节点正确下线流程 维护某个节点或者删除节点 正确流程如下
1、获取节点列表
kubectl get node
2、驱逐节点上的Pod并设置不可调度cordon
kubectl drain node_name --ignore-daemonsets
3、 设置可调度或者移除节点
kubectl uncordon node_name
kubectl delete node node_name K8s集群故障排查 应急处理流程 排查思路 K8s 故障排查 案例1
故障现象kubectl get node节点处于NotReady 排查思路查看kubelet和docker服务是否正常 分析kubelet日志 K8s 故障排查 案例2
故障现象Pod运行不正常排查思路• 根据Pod状态假设https://kubernetes.io/zh/docs/concepts/workloads/pods/pod-lifecycle/ • 查看资源详情kubectl describe TYPE/NAME • 查看容器日志kubectl logs TYPE/NAME [-c CONTAINER] K8s 故障排查 案例3
故障现象互联网用户无法访问应用Ingress或者Service无法访问排查思路• Pod正常工作吗 • Service是否关联Pod • Service指定target-port端口是否正确 • 如果用名称访问 DNS是否正常工作 • kube-proxy正常工作吗 是否正常写iptables规则 • CNI网络插件是否正常工作