我的编程空间,编程开发者的网络收藏夹
学习永远不晚

备份和恢复Kubernetes集群中的Etcd数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

备份和恢复Kubernetes集群中的Etcd数据

Kubernetes作为目前最炙手可热的容器编排软件,受到越来越多互联网公司的喜爱,之所以会出现这样的现象,主要还是因为这套编排软件不仅功能强大,还非常方便进行二次开发,整个Kubernetes的生态圈非常活跃。有了Kubernetes这套“骨架”,可以在上面运行非常多的中间件和应用程序。Apiserver,Controller Manager,Scheduler,Proxy可以认为是这套“骨架”的组成部分,而Etcd便是这套系统的底座,整个系统的数据都存储在它当中,保证了Etcd的稳定性整个容器编排系统的稳定性就有了保证。

在正式开始之前,说明下实验环境,五台主机组成Kubernetes集群。

  • 控制平面主机:p1.xufu.xyz、p2.xufu.xyz、p3.xufu.xyz
  • 工作主机:p4.xufu.xyz、p5.xufu.xyz
  • 主机系统:CentOS Linux release 7.9.2009 (Core)
  • Etcd版本:3.5.1

Etcd

  • 简介

它是一种键值数据库,Kubernetes将自身的状态数据都存储在Etcd中,这些数据包含deployment,pod,daemonset等各种对象。整个集群组件中只有Apiserver会直接和Etcd通信,其他组件都是直接和Apiserver通信。在生产环境中,最好以集群的方式运行Etcd,官方建议运行五个节点组成集群,这样可以在丢失两个节点的情况下, 保证数据的可用性。

  • 访问

Etcd中存放有不少敏感数据,所以对它的访问需要使用公钥和私钥。为了方便访问,在家目录文件“.bashrc”配置如下命令别名。

alias ectl='etcdctl --endpoints p1.xufu.xyz:2379 \    --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key \    --cacert=/etc/kubernetes/pki/etcd/ca.crt'

显示当前Etcd存储的所有Key。

ectl get / --prefix --keys-only
  • 备份

使用kubeadm部署的集群,Etcd默认将数据存放在宿主机的目录/var/lib/etcd下。

Etcd数据目录

Etcd的版本2和3差别很大,因笔者使用的是3版本,备份命令是这样(在任一控制平面主机操作均可),命令执行不用对Etcd做关闭操作。

ectl snapshot save snapshot-$(date +%F)

查看备份的快照。

快照信息

  • 恢复

恢复操作相比较备份操作有稍许麻烦。下面步骤需要在三台控制平面主机上都操作。

1,关闭kubelet,否则它会自动重启apiserver。

systemctl stop kubelet.service

2,关闭apiserver容器,使用docker命令找到容器,直接stop。

docker stop apiservername

3,重命名目录/var/lib/etcd,创建新的,并修改目录权限。

mv /var/lib/etcd /var/lib/etcd_oldmkdir /var/lib/etcdchmod 700 /var/lib/etcd

4,使用备份的快照,恢复数据。

ectl snapshot restore /data/etcd_backup/etcd-snapshot-2022-08-03.db \  --name p1.xufu.xyz \  --initial-cluster "etcd-0=https://p1.xufu.xyz:2380,etcd-1=https://p2.xufu.xyz:2380,etcd-2=https://p3.xufu.xyz:2380"  \  --initial-advertise-peer-urls https://p1.xufu.xyz:2380 \  --data-dir=/var/lib/etcd

p2和p3节点类似。

5,启动三台etcd,确认下集群是否健康。

[root@p1 etcd]# ectl --endpoints=https://p1.xufu.xyz:2379,https://p2.xufu.xyz:2379,https://p3.xufu.xyz:2379 endpoint healthhttps://p2.xufu.xyz:2379 is healthy: successfully committed proposal: took = 100.193247msp1.xufu.xyz:2379 is healthy: successfully committed proposal: took = 111.234607mshttps://p1.xufu.xyz:2379 is healthy: successfully committed proposal: took = 113.788721mshttps://p3.xufu.xyz:2379 is healthy: successfully committed proposal: took = 118.403445ms

确认没问题后,启动apiserver容器。

至此,整个恢复备份过程操作完毕。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

备份和恢复Kubernetes集群中的Etcd数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

备份和恢复Kubernetes集群中的Etcd数据

整个集群组件中只有Apiserver会直接和Etcd通信,其他组件都是直接和Apiserver通信。在生产环境中,最好以集群的方式运行Etcd,官方建议运行五个节点组成集群,这样可以在丢失两个节点的情况下, 保证数据的可用性。

掌握 Kubernetes 集群 Etcd 数据备份与快速恢复方法

在本教程中,您将学习如何在 Kubernetes 集群上使用 etcd 快照进行 etcd 备份和恢复。

MySQL Galera集群的数据备份与恢复方案

MySQL Galera集群的数据备份与恢复方案主要包括备份策略的选择、备份工具的使用,以及数据恢复的步骤。以下是一些关键步骤和工具:数据备份方案物理备份:直接复制数据库文件,包括数据文件、日志文件等。这种备份方法通常速度较快,但需要停止
MySQL Galera集群的数据备份与恢复方案
2024-09-04

容器化|在 S3 备份恢复 RadonDB MySQL 集群数据

作者:程润科、钱芬视频:钱芬上一篇文章我们演示了如何快速实现 MySQL 高可用集群部署,以及部署集群的校验和卸载方式。本文将演示如何对集群进行备份和恢复。部署版本为 RadonDB MySQL Kubernetes 2.1.3。环境准备首先准备一套 Kube
容器化|在 S3 备份恢复 RadonDB MySQL 集群数据
2015-09-08

如何制定 MySQL 数据集的备份恢复策略?(MySQL数据集备份恢复策略)

在数据库管理中,MySQL 数据集的备份恢复策略是至关重要的一环。它能够确保数据的安全性、完整性和可恢复性,防止因硬件故障、软件错误、人为误操作或其他意外情况导致的数据丢失。以下是制定 MySQL 数据集备份恢复策略的详细步骤:
如何制定 MySQL 数据集的备份恢复策略?(MySQL数据集备份恢复策略)
2024-12-13

Ubuntu Spark集群的备份与恢复策略

Ubuntu Spark集群的备份与恢复策略涉及多个方面,包括系统备份、数据备份以及Spark应用的备份与恢复机制。以下是关于Ubuntu Spark集群备份与恢复的相关信息:系统备份与恢复Timeshift:Timeshift是一款流行
Ubuntu Spark集群的备份与恢复策略
2024-10-22

MyBatis视图在数据备份恢复中的备份数据恢复测试

MyBatis视图是一个虚拟表,它是基于SQL查询结果的。在数据备份恢复中,备份数据的恢复测试是一个重要的步骤,以确保备份的数据可以正确地恢复到数据库中。以下是一个简单的步骤来测试MyBatis视图的备份数据恢复:备份数据:首先,你需要对数
MyBatis视图在数据备份恢复中的备份数据恢复测试
2024-10-14

评估MySQL Galera集群的备份恢复速度

MySQL Galera集群的备份恢复速度是一个关键的性能指标,它直接影响到数据库的可用性和数据安全性。以下是对MySQL Galera集群备份恢复速度评估的相关信息:Galera集群备份恢复速度的影响因素数据同步机制:Galera集群采
评估MySQL Galera集群的备份恢复速度
2024-09-04

Ubuntu Spark集群的自动备份恢复策略

Ubuntu Spark集群的自动备份恢复策略主要依赖于集群管理和监控工具,以及可能的自定义脚本。以下是一些常见的备份恢复策略:备份策略手动备份:可以通过打包Spark主目录(通常位于 /var/lib/spark)来实现,包括配置文件、
Ubuntu Spark集群的自动备份恢复策略
2024-10-22

pgsql集群备份恢复的方法是什么

在 PostgreSQL 集群中进行备份和恢复通常使用以下方法:使用 pg_dump 工具备份数据库:可以使用 pg_dump 工具从 PostgreSQL 集群中备份数据库。例如,使用以下命令备份一个数据库:pg_dump -h host
pgsql集群备份恢复的方法是什么
2024-04-09

Cassandra中怎么备份和恢复数据

备份数据:使用命令行工具cqlsh连接到Cassandra数据库。运行命令“COPY keyspace.table TO ‘backup.csv’”来将数据导出到一个CSV文件中。复制或移动这个CSV文件到安全的位置,作为备份。恢复数据
Cassandra中怎么备份和恢复数据
2024-04-09

Teradata中怎么备份和恢复数据

在Teradata中备份和恢复数据需要使用Teradata的备份和恢复工具。以下是备份和恢复数据的一般步骤:备份数据:使用Teradata的备份工具,如Teradata Data Export or Teradata Backup。创建
Teradata中怎么备份和恢复数据
2024-03-08

HBase中怎么备份和恢复数据

在HBase中备份和恢复数据通常有两种方法:使用HBase自带的工具备份和恢复数据:备份数据:可以使用HBase的命令行工具或API来备份数据。通过执行类似于hbase backup create的命令或通过API调用,可以将数据备份到指定
HBase中怎么备份和恢复数据
2024-03-11

Teradata中如何备份和恢复数据

在Teradata中备份和恢复数据通常使用Teradata Parallel Transporter (TPT) 或 Teradata Data Mover 来实现。以下是备份和恢复数据的基本步骤:备份数据:使用 Teradata Bac
Teradata中如何备份和恢复数据
2024-04-09

MySQL数据库备份和恢复

目录 MySQL数据库备份和恢复 备份恢复概述 为什么要备份 备份注意要点 还原要点 备份类型: 备份时需要考虑的因素 备份
MySQL数据库备份和恢复
2015-03-06

XtraBackup MySql 数据备份和恢复

1.wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.12-
XtraBackup MySql 数据备份和恢复
2017-01-22

MyBatis视图在数据备份恢复中的备份数据容灾恢复演练

MyBatis是一个流行的Java数据库访问框架,它简化了数据库操作,提高了开发效率。然而,MyBatis本身并不直接涉及数据备份恢复或容灾恢复演练,这些操作通常由数据库管理系统(DBMS)或备份恢复软件来处理。以下是关于数据备份恢复和容灾
MyBatis视图在数据备份恢复中的备份数据容灾恢复演练
2024-10-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录