文档章节

Kubernetes中使用CronJob定时备份etcd集群数据

openthings
 openthings
发布于 2018/09/09 21:32
字数 362
阅读 379
收藏 2

Kubernetes中使用CronJob定时备份etcd集群数据

kubernetes中部署的应用的信息都存放在etcd里面,这里面的数据非常重要,需要备份,以备不时之需。

这里使用k8s提供的定时任务来执行备份任务,定时任务的pod要和etcd的pod要在同一个node上面(使用nodeAffinity)。

要求

  • kubernetes 1.6
  • etcd 3.0.17

yaml文件

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: etcd-disaster-recovery
  namespace: cron
spec:
 schedule: "0 22 * * *"
 jobTemplate:
  spec:
    template:
      metadata:
       labels:
        app: etcd-disaster-recovery
      spec:
        affinity:
          nodeAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
                  nodeSelectorTerms:
                  - matchExpressions:
                    - key: kubernetes.io/role
                      operator: In
                      values:
                      - master
        containers:
        - name: etcd
          image: coreos/etcd:v3.0.17
          command:
          - sh
          - -c
          - "export ETCDCTL_API=3; \
             etcdctl --endpoints $ENDPOINT snapshot save /snapshot/$(date +%Y%m%d_%H%M%S)_snapshot.db; \
             echo etcd backup sucess"
          env:
          - name: ENDPOINT
            value: "127.0.0.1:2379"
          volumeMounts:
            - mountPath: "/snapshot"
              name: snapshot
              subPath: data/etcd-snapshot
            - mountPath: /etc/localtime
              name: lt-config
            - mountPath: /etc/timezone
              name: tz-config
        restartPolicy: OnFailure
        volumes:
          - name: snapshot
            persistentVolumeClaim:
              claimName: cron-nas
          - name: lt-config
            hostPath:
              path: /etc/localtime
          - name: tz-config
            hostPath:
              path: /etc/timezone
        hostNetwork: true

 

参考

本文转载自:https://zhuanlan.zhihu.com/p/31937570

openthings
粉丝 322
博文 1138
码字总数 687611
作品 1
东城
架构师
私信 提问
加载中

评论(3)

openthings
openthings 博主
注意:这里的内容已经过时!
使用kubernetes1.12.3和etcd3.2.24请参考:
Kubernetes的etcd探秘-状态数据备份, https://my.oschina.net/u/2306127/blog/2979019
openthings
openthings 博主

引用来自“jack_jones”的评论

etcd集群,3节点,想要做备份,需要3个节点分别执行备份吗?

@jack_jones 在数据一致的情况下,不需要。
jack_jones
jack_jones
etcd集群,3节点,想要做备份,需要3个节点分别执行备份吗?
Kubernetes探秘—etcd状态数据及其备份

Kubernetes使用etcd来存储集群的实时运行数据(如节点状态信息),而其它pod都是无状态的、可以根据负载调度,在多个节点(node)间进行漂移。etcd本身是可以部署为无中心的多节点互备集群,...

openthings
2018/12/05
1K
0
Kubernetes探秘—配置文件目录结构

Kubernetes的配置目录包括/etc/kubernetes、/home/supermap/.kube和/var/lib/kubelet目录。 下面我们来看一看,这些目录里到底有些什么文件(操作系统使用Ubuntu 18.04LTS desktop)。 安装t...

openthings
2018/12/06
238
0
Kubernetes集群的主节点备份与恢复

通常安装模式下(如使用kubeadm)的Kubernetes集群,主节点(Master)只有一个,而且集群数据存储服务etcd也只运行了一个实例。如果遇到极端情况(如整机故障、主硬盘损坏、数据误删除等)导...

openthings
2018/12/06
480
0
Kubernetes jobs:使用rsync建立定期备份任务

Kubernetes中的job和cronjob可用于批处理和定时任务。这里,我们使用其建立集群级别的文件备份机制。 关于Kubernetes中的job和cronjob使用,请参考: Kubernetes Jobs - 运行处理任务指南 Ku...

openthings
2018/09/09
75
0
Kubernetes的etcd数据查看和迁移

Kubernetes的集群元数据都保存在etcd中,我们可以直接访问来查看数据。 1、查看etcd数据 kubeadm默认安装 方法如下: 因为Kubernetes中的etcd 实例使用了https,需要指定证书等信息,即cacer...

openthings
2018/12/11
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

postman批量测试

postman批量调用: 先单个调用,成功了 再save为collection 再点击三角形,点击run 设置1000次,run就可以 见《postman批量测试.docx》

Danni3
14分钟前
5
0
js 对象操作 js 对象和对象赋值 去除关联性 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

当我们在项目需要 复制一个对象到另一个对象并且 被复制的对象不能受复制后的对象的影响。 我先总结下 我们哪些方法可以复制对象 // 直接赋值var obj1 = { a: 1 };var obj2 = obj1;...

xiaogg
15分钟前
3
0
Go微服务全链路跟踪详解

在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪。 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链。 该ID称为C...

倚天码农
29分钟前
3
0
QML笔记-对QML中信号与槽的基本认识

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq78442761/article/details/90753986 目录 基本概念 演示...

shzwork
36分钟前
3
0
SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

xiangyunyan
54分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部