网站建设及维护推广合同,dede查看网站源码,网站制作西安企业网站制作,企业宣传片走心文案1.宕机或异常重启导致etcd启动失败 服务器非正常关机#xff08;意外掉电、强制拔电#xff09;后 etcd 数据损坏。 查看apiserver日志发现出现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused#xff0c;2379是etcd的端口#xff0c;那么a…1.宕机或异常重启导致etcd启动失败 服务器非正常关机意外掉电、强制拔电后 etcd 数据损坏。 查看apiserver日志发现出现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused2379是etcd的端口那么apiserver是由于etcd无法连接而启动不了 参考资料https://blog.csdn.net/kali_yao/article/details/126810964
处理办法
查看etcd和api-server服务状态及日志
docker ps -a|grep etcd
docker ps -a|grep api-server#1.不知道路径可以查找etcd数据目录
find / -type d -name member
cd /var/lib/etcd/member
mv /var/lib/etcd/member /root/member.back
# 注在故障节点执行删除或者移走备份都可以#1.重启etcd
docker ps -a|grep etcd
docker rm -f etcd的ID # 所有节点执行
systemctl restart kubelet # 重启kubelet#2.查看
kubectl get pods
# 注此时没有报错了etcd数据备份与恢复
https://www.cnblogs.com/huanglingfa/p/13773397.html
# 首先需要安装etcdctl 命令行命令
yum install -y etcd# 备份
# 可 export ETCDCTL_API3 设定临时环境变量防止每次重复输入
# 注意 snapshot.db 是当前路径可以指定路径
ETCDCTL_API3 etcdctl \snapshot save snapshot.db \ --endpointshttps://127.0.0.1:2379 \--cacert/etc/kubernetes/pki/etcd/ca.crt \--cert/etc/kubernetes/pki/etcd/peer.crt \--key/etc/kubernetes/pki/etcd/peer.key# 查看文件存储的信息
ETCDCTL_API3 etcdctl snapshot status snapshot.db# kubeadm 部署恢复etcd数据库
# 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 snapshot.db \--data-dir/var/lib/etcd
# 3、启动kube-apiserver和etcd容器
mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
mv /var/lib/etcd.bak /var/lib/etcd/# 环境准备复制容器中的etcdctl命令出来
docker ps | grep etcd
docker cp baf3e1a53c2c:/usr/local/bin/etcdctl /usr/bin/# 创建定时任务 crontab -e
0 * * * * /opt/k8s_bak/backup_etcd.sh#!/bin/bash
BACKUP_FILEsnapshot.db
BACKUP_PATH/opt/k8s_bak/
ETCDCTL_API3 etcdctl snapshot save $BACKUP_PATH$BACKUP_FILE --endpointshttps://127.0.0.1:2379 --cacert/etc/kubernetes/pki/etcd/ca.crt --cert/etc/kubernetes/pki/etcd/peer.crt --key/etc/kubernetes/pki/etcd/peer.key
echo etcd backup completed at $(date)2.安装k8s集群cilium一直重启
docker ps -a
# 查看已关闭容器日志
# 发现报错日志nsenter: cannot open /hostproc/1/ns/cgroup: No such file or directory- hostPath:path: /proc # 也就是说是宿主机的这个目录中没有 /proc/1/ns/cgroup 这个文件。# 使用cilium因linux内核版本过低无法启动issueshttps://github.com/rancher/rke2/issues/35713.K8S Flannel Pod 无法启动系列问题 “cni0” already has an IP address different from # 可以使用 IP 命令直接修改
sudo ip address flush dev cni0
sudo ip address change 10.244.X.1/24 dev cni0# 或是删除 cni0 让 K8S 自动重建
sudo ip link set cni0 down
sudo ip link delete cni04.修改默认端口范围
vim /etc/kubernetes/manifests/kube-apiserver.yaml# 添加到如下位置就行了
- command:- kube-apiserver- --service-node-port-range1-65535# 直接删除kube-apiserver pod 就行了 会自动重启
# 多master节点需删除所有
# kubectl delete pod kube-apiserver-qa-01.df-emall.com -n kube-system
# kubectl delete pod kube-apiserver-qa-04.df-emall.com -n kube-system5.k8s备份工具velero
Githubhttps://github.com/vmware-tanzu/velero Velero之前称为Heptio Ark是一个备份和还原Kubernetes集群的流行工具支持备份和还原Kubernetes对象、PV和Namespace等资源。Velero能够备份到本地存储和云存储如AWS S3和Google Cloud Storage还支持在不同集群之间迁移数据。