云原生架构 - 备份和恢复 Kubernetes 集群

Posted 云原生兴趣小组

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生架构 - 备份和恢复 Kubernetes 集群相关的知识,希望对你有一定的参考价值。


备份什么?


对于Kubernetes搭建的集群,我们需要备份:


应用版本及编排信息(Application Version)

  • 应用对应的工作负载,例如:

    deploymenet,statefulset以及daemonset等等

  • 应用需要使用的配置,例如:

    configmap,secret等等


应用状态信息(Application State)

  • 应用可以分为有状态应用和无状态应用

  • 有状态应用需要备份状态数据,例如:database



备份方案


总结下来,方案和开源工具有如下5种,接下来几遍文章我们将和大家一一深入实践和总结,这里点到为止。


1. etcd: etcd 备份是某一时刻的完整数据,无法自定义选择备份哪些内容,且数据除了 etcd 本身,其他程序不可读,因此有很多的局限。另外 pod 使用的存储如 PV 等数据也需要备份,这并不在 etcd 的范畴。

2. velero: Backup and migrate Kubernetes resources and persistent volumes

3. stash: Backup your Kubernetes Stateful Applications

4. portworx: Portworx solves these challenges and more with cloud native storage and data management built from the ground up for Kubernetes.

5. 手工kubectl yaml 备份

kubectl get deploy nginx-deployment -n poc -o yaml > nginx-deploy.yaml
kubectl get deploy -A -o yaml > all-deployment.yaml
kubectl get pod -n poc -o yaml > poc.yaml



以上是关于云原生架构 - 备份和恢复 Kubernetes 集群的主要内容,如果未能解决你的问题,请参考以下文章

详解kubernetes备份恢复利器 Velero - 深入了解Carina系列第三期

云原生之kubernetes实战kubernetes集群的证书管理

k8s篇备份之velero

云原生架构中的Kubernetes可观察性挑战

云原生架构中Kubernetes可观察性的挑战

云原生训练营模块四 Kubernetes 架构原则和对象设计