使用cronjob备份etcd

创建pvc

在kube-system项目中手动,选择storage class,创建名称etcd-backup 的pvc

发布备份cronjob

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  namespace: kube-system
  name: etcd-backup
spec:
  schedule: "0 */12 * * *"
  jobTemplate:
    spec:
      template:
        metadata:
          labels:          
            backup: "etcd"
        spec:
          containers:
          - name: etcd-backup
            image: quay.io/coreos/etcd:v3.2.22
            args:
              - |
                #!/bin/sh
                set -ex
                source /etc/etcd/etcd.conf
                mkdir /backup/etcd-$(date +%d%H)
                ETCDCTL_API=3 etcdctl --cert="/etc/etcd/peer.crt" --key=/etc/etcd/peer.key --cacert="/etc/etcd/ca.crt" --endpoints=$ETCD_ADVERTISE_CLIENT_URLS snapshot save /backup/etcd-$(date +%d%H)/db
                tar -zcvf /backup/etcd-$(date +%d%H).tar.gz /backup/etcd-$(date +%d%H)/db
                rm -Rf /backup/etcd-$(date +%d%H)
            command:
              - /bin/sh
              - '-c'
            securityContext:
              privileged: true
            volumeMounts:
              - mountPath: /etc/etcd/
                name: master-config
                readOnly: true
              - name: backup
                mountPath: /backup
          restartPolicy: OnFailure
          nodeSelector:
            node-role.kubernetes.io/master: 'true'
          volumes:
            - hostPath:
                path: /etc/etcd/
                type: ''
              name: master-config
            - name: backup
              persistentVolumeClaim:
                claimName: etcd-backup

检查备份数据

找到pvc etcd-backup 对应的网盘目录

挂载到临时目录

卸载目录

支持作者

如果文章对您有帮助,欢迎打赏,谢谢

支付宝

Last updated