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 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux