From 67e1d3cbe4baa18be76b64d0c6126c06cb34cab2 Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Fri, 5 Jun 2020 10:06:36 +1000 Subject: [PATCH] No not restart a backup --- etcd-backup-cronjib.yaml | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 etcd-backup-cronjib.yaml diff --git a/etcd-backup-cronjib.yaml b/etcd-backup-cronjib.yaml new file mode 100644 index 0000000..c9a603e --- /dev/null +++ b/etcd-backup-cronjib.yaml @@ -0,0 +1,47 @@ +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: etcd-snapshot + namespace: default +spec: + schedule: "50 23 * * *" + jobTemplate: + spec: + template: + spec: + containers: + - name: backup + # Same image as in /etc/kubernetes/manifests/etcd.yaml + image: k8s.gcr.io/etcd:3.4.3-0 + 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: + - mountPath: /etc/kubernetes/pki/etcd + name: etcd-certs + readOnly: true + - mountPath: /backup/etcd + name: backup + hostNetwork: true + restartPolicy: Never + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-role.kubernetes.io/master + operator: Exists + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: etcd-certs + hostPath: + path: /etc/kubernetes/pki/etcd + type: Directory + - name: backup + hostPath: + path: /mnt/backups/etcd + type: Directory