kubeneters发生故障时候对etcd进行灾难备份恢复

本文详细介绍了一种针对Kubernetes集群的灾难恢复方案,通过设置定时任务进行数据备份,确保在发生故障时能够快速恢复。文章提供了具体的CronJob配置样例,包括定时任务格式、权限调整等关键步骤。

参考文章 The Ultimate Guide to Disaster Recovery for Your Kubernetes Clusters https://medium.com/velotio-perspectives/the-ultimate-guide-to-disaster-recovery-for-your-kubernetes-clusters-94143fcc8c1e

定时任务格式参考 https://kubernetes.io/zh/docs/concepts/workloads/controllers/cron-jobs/

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: backup
  namespace: kube-system
spec:
# activeDeadlineSeconds: 100
 schedule: "* * */1 * *"
 jobTemplate:
  spec:
   template:
    spec:
     containers:
     - name: backup
      # Same image as in /etc/kubernetes/manifests/etcd.yaml
       image: docker.io/bitnami/etcd:3.4.7
       env:
       - name: ETCDCTL_API
         value: "3"
       command: ["/bin/sh"]
       args: ["-c", "etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save /backup/etcd-snapshot-$(date +%Y-%m-%d_%H:%M:%S_%Z).db"]
       volumeMounts:
       - name: etcd-certs
         mountPath: /etc/kubernetes/pki/etcd
         readOnly: true
       - name: backup
         mountPath: /backup
       restartPolicy: OnFailure
       hostNetwork: true
       # run only in the master onde.
       nodeSelector:
        node-role.kubernetes.io/master: ""
       tolerations:
       - key: "node-role.kubernetes.io/master"
         effect: "NoSchedule"
       volumes:
       - name: etcd-certs
         hostPath:
          path: /etc/kubernetes/pki/etcd
          type: DirectoryOrCreate
       - name: backup
         hostPath:
          path: /data/backup
          type: DirectoryOrCreate

当前使用会遇到open /etc/kubernetes/ permission denied,这是因为文件权限的。当前是root,而使用的bitnami镜像是用1001账户权限,所以这里要处理使宿主机所属用户组和容器一样。在yaml文件里面添加

       securityContext:
        runAsUser: 0 (root)
        runAsGroup: 0 (root)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值