k8s集群etcd备份与恢复

一、前言

     k8s集群使用etcd集群存储数据,如果etcd集群崩溃了,k8s集群的数据就会全部丢失,所以需要日常进行etcd集群数据的备份,预防etcd集群崩溃后可以使用数据备份进行恢复,也可用于重建k8s集群进行数据恢复

二、备份

    先安装etcd服务,k8s集群使用的pod部署etcd集群

   yum -y install etcd

   更改etcd api版本为v3(临时生效,重启后会失效)

   export ETCDCTL_API=3

   永久生效

   vi /etc/profile

export ETCDCTL_API=3    #在末尾加入该配置

使配置生效 

source /etc/profile 

   查看是否生效

   etcdctl version

   

 etcd集群数据备份,只需在一个节点上执行备份即可,因为用的是pod部署所以直接调用etcd接口进行备份

 netstat -tlpn

创建备份存放目录

mkdir -p /opt/etcd/backup/ 

执行备份命令

ETCDCTL_API=3 etcdctl --endpoints=https://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 \
snapshot save /opt/etcd/backup/etcdbackup.db

ls -ll  /opt/etcd/backup/

三、恢复 

    etcd集群数据恢复需要在每个etcd的节点执行数据备份的恢复,执行恢复前需要先停止etcd服务和k8s组件服务apiserver、controller-manager、scheduler即manifests目录下的所有由yaml启动的服务

ls /etc/kubernetes/manifests/

 因为是通过pod的方式直接部署,将该目录更改名称所有服务就会停止

mv /etc/kubernetes/manifests  /etc/kubernetes/manifests.bak

再把原来的etcd数据目录也备份,以免恢复出问题需要还原

mv /var/lib/etcd /var/lib/etcd.bck

恢复etcd备份数据

ETCDCTL_API=3 etcdctl snapshot restore /opt/etcd/backup/etcdbackup.db --data-dir=/var/lib/etcd

 以上恢复操作需要在每个etcd节点均需执行,执行完成后在恢复etcd和k8s组件服务的运行

将etcd和k8s组件服务恢复运行

mv /etc/kubernetes/manifests.bak  /etc/kubernetes/manifests 

相关推荐

  1. K8SEtcd数据备份/恢复

    2023-12-28 10:26:09       9 阅读
  2. k8s etcd备份恢复

    2023-12-28 10:26:09       27 阅读
  3. K8s 高可用master节点ETCD挂掉如何恢复?

    2023-12-28 10:26:09       23 阅读
  4. K8s 高可用master节点ETCD全部挂掉如何恢复?

    2023-12-28 10:26:09       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-28 10:26:09       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-28 10:26:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-28 10:26:09       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-28 10:26:09       20 阅读

热门阅读

  1. MySQL8 一键部署

    2023-12-28 10:26:09       29 阅读
  2. etcd故障节点

    2023-12-28 10:26:09       25 阅读
  3. SpringBoot集成etcd,实现实时监听,实现配置中心

    2023-12-28 10:26:09       33 阅读
  4. Ubuntu安装WordPress并使用Nginx作为Web服务器

    2023-12-28 10:26:09       31 阅读
  5. Illegal unit of measure (pt inserted)

    2023-12-28 10:26:09       38 阅读
  6. linux和windows获取RAM全局瞬时占用

    2023-12-28 10:26:09       27 阅读
  7. C++ 图形界面的贪吃蛇。

    2023-12-28 10:26:09       36 阅读
  8. uniapp中各种状态的按钮

    2023-12-28 10:26:09       40 阅读
  9. conda环境配置torch+cuda+cudnn+dgl用到的一些命令

    2023-12-28 10:26:09       25 阅读
  10. 多元函数极值@条件极值

    2023-12-28 10:26:09       40 阅读
  11. Springboot2+mybatisplus+多数据源更换mysql数据库为pgsql

    2023-12-28 10:26:09       37 阅读