Kubernetes(k8s)-备份&Etcd介绍

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们讲解Kubernetes,讲到现在已经讲解超过50小节,但是我们还没有讲解过关于Kubernetes备份相关的内容,毕竟这个Kubernetes集群承担了很重要的业务,但是我们还没考虑过集群备份功能,今天这个小节我们讲解下备份相关的内容。

讲解备份之前,我们需要先知道Kubernetes集群的数据存储在哪里,知道了数据存储在哪里,我们是不是只要备份数据库的内容即可。

Kubernetes的的数据经过我们前面多个小节的介绍,我们已经知道他数据都存储在Etcd数据库里面,哪我们应该怎么备份数据库呢?

Etcd由于我们这里是容器部署的,所以在Master里面默认是没有备份工具的,我们需要先准备备份工具。

1.备份工具准备

bash 复制代码
#按照帮助,但是这个命令会执行失败
kubectl cp  kube-system/etcd-master01:/usr/local/bin/etcdctl ./etcdctl

#换成Docker命令则没问题,注意替换容器id
[root@master01 ~]# docker cp 3910:/usr/local/bin/etcdctl ./etcdctl
Successfully copied 18MB to /root/etcdctl

2.备份命令

ini 复制代码
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 ./etcd/snapshot.db

这里多说一点,在Kubernetes里面所有服务端都是带证书的,所以我们操作数据库也需要带上证书,实际上把最后的备份命令换成其他查询命令,也可以查看Etcd里面的数据。

除去我们直接操作Kubernetes的数据库外,实际上我们还有另外一种备份方式。

当我们部署完成集群的时候,目前集群里面只有默认的管控Pod,和网络插件,我们只需要把这些Pod的yaml文件备份到其他地方即可。当我们业务上线以后,我们所有操作都通过yaml文件来写入集群,哪么我们只需要把我们写入集群的yaml文件备份即可,如果存储在版本问题的,我们也可以使用版本工具或者其他方式来标注,这样我们写入集群前的数据都在,也就达到了备份的目的。

如果我们手边的文件已经存在部分丢失,我们也可以把当前集群里面的资源以另存yaml格式方式来进行备份(这个命令将在下一小节详细讲解)。注意不要遗漏资源。

arduino 复制代码
kubectl get deploy xxx -o yaml >xxx.yaml

上面的备份我们已经完成Kubernetes集群的元数据备份,但是集群所需要的集群镜像是否也有备份或者是否具有高可用性,也是需要考虑的,我们后期也会出一期如何来把数据存储到COS里面,也可以用我们前面讲解的Harbor同步功能进行备份。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
小此方1 小时前
Re:Linux系统篇(二十九)文件篇·二:深度解析Linux文件描述符、dup2指针覆盖与内建命令重定向完全解析
linux·运维·驱动开发
wuminyu1 小时前
Java锁机制之park与futex系统级协同机制解析
java·linux·c语言·jvm·c++
Cosolar4 小时前
LlamaIndex索引类型全解析:原理与实战指南
运维·服务器
方便面不加香菜6 小时前
Linux--基础IO(一)
linux·运维·服务器
张忠琳8 小时前
【client-go v0.36.1】(store Part 3)Store 超深度分析 — 集成模式、完整数据流、不变量、与 DeltaFIFO 协作
云原生·kubernetes·informer·store·client-go
鼎讯信通8 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..9 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
跨境数据猎手10 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA10 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter62511 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel