admin管理员组文章数量:1530517
一.环境准备
1.k8s 集群 (我自己的是单master节点的,多master的只需要将备份好的数据在多个master都执行一遍就行了,备份只需要在一个master上备份。)
二.安装etcdctl命令
1.查看etcd的版本,我用的是阿里的etcd
docker images
2.下载地址
https://github/etcd-io/etcd/releaseshttps://github/etcd-io/etcd/releases3.安装etcdctl
tar -xf etcd-v3.4.13-linux-amd64.tar.gz
cd etcd-v3.4.13-linux-amd64
cp etcdctl /usr/bin
三.etcdctl备份
粘贴下面的命令,并创建脚本文件
#! /bin/bash
# 配置获取证书的目录
ETCD_PATH=/etc/kubernetes/pki
CACERT=$ETCD_PATH/etcd/ca.crt
CERT=$ETCD_PATH/etcd/server.crt
KEY=$ETCD_PATH/etcd/server.key# 本机的etcd地址
ENDPOINTS=https://172.16.1.214:2379ETCDCTL_API=3 etcdctl \
--cacert="${CACERT}" --cert="${CERT}" --key="${KEY}" \
--endpoints=${ENDPOINTS} \
snapshot save /root/operation/etc_back/etcd-snapshot-`date +%Y%m%d%H%M%S`.db
四.etcdctl恢复
1.移除且备份 /etc/kubernetes/manifests/
mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak
查看 kube-apiserver、etcd镜像是否停止或者直接用kubectl命令 查看是否还能使用,不能使用说明操作成功。
2.备份现有的etcd数据
mv /var/lib/etcd /var/lib/etcd.bak
3.粘贴下面的命令,并创建脚本文件
#!/bin/bash
if [ ! -n "$1" ];
then
echo "请输入etcd备份文件的时间"
exit
fiBACKUP=/root/operation/etc_back/etcd-snapshot-$1.db
echo $BACKUP
if [ ! -f "$BACKUP" ];
then
echo "etcd备份文件不存在,请重新执行并输入正确的备份文件时间"
exit
fiETCD_PATH=/etc/kubernetes/pki
CACERT=$ETCD_PATH/etcd/ca.crt
CERT=$ETCD_PATH/etcd/server.crt
KEY=$ETCD_PATH/etcd/server.key
INITIAL_CLUSTER=https://172.16.1.214:2380
INITIAL_ADVERTISE_PEER_URLS=https://172.16.1.214:2380rm -rf /var/lib/etcd/
ECTD_API=3 etcdctl --cacert=$ETCD_PATH/etcd/ca.crt --cert=$ETCD_PATH/etcd/server.crt --key=$ETCD_PATH/etcd/server.key --endpoints=$ENDPOINTS snapshot restore \
$BACKUP --name=master1 --initial-cluster=master1=$INITIAL_CLUSTER --initial-advertise-peer-urls=$INITIAL_ADVERTISE_PEER_URLS --data-dir=/var/lib/etcd
4.恢复kube-apiserver与etcd
mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
五 错误总结
1.如果恢复之后pod不能正常启动,可以尝试将pod删除掉,在根据yaml重新创建pod。
2.如果是mysql这类的带有pvc的pod,需要注意了,因为在删除命名空间之后,对应的nfs目录也会被标记为不可用。
因此在重启pod的时候会出现一下错误,在nfs上找不到对应的目录。
因此需要在恢复之后,将这个“archived-” 删除掉,说白了就是回复到正常的情况,然后在删除pod就可以启动了
如果svc不能用就根据yaml直接在创建一次就行。
版权声明:本文标题:k8s etcd 备份和恢复 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1725749376a1040600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论