Sign inSign up

jclab/mysql-backupper

By jclab

•Updated over 5 years ago

Image
0

1.2K

jclab/mysql-backupper repository overview

⁠mysql-backupper

Docker image : jclab/mysql-backupper:release-0.0.1

⁠Example

Kubernetes

Secret:

kind: Secret
apiVersion: v1
metadata:
  name: mysql-backup-ssh-cred
type: Opaque
data:
  privkey.pem: 'BASE64 ENCODED PRIVATE KEY'
  known_hosts: 'BASE64 ENCODED KNOWN HOSTS'

---

kind: Secret
apiVersion: v1
metadata:
  name: mysqk-backup-db-cred
type: Opaque
data:
  host: 'BASE64 ENCODED HOST'
  username: 'BASE64 ENCODED USERNAME'
  password: 'BASE64 ENCODED PASSWORD'

Cron Job

kind: CronJob
apiVersion: batch/v1beta1
metadata:
  name: k8s-cluster-mysql-backup-cronjob
spec:
  schedule: 0 0 * * *
  concurrencyPolicy: Allow
  suspend: false
  jobTemplate:
    metadata:
      creationTimestamp: null
      labels:
        job: k8s-cluster-mysql-backup-cronjob
    spec:
      template:
        metadata:
          creationTimestamp: null
          labels:
            job: k8s-cluster-mysql-backup-cronjob
        spec:
          volumes:
            - name: ssh-secret
              secret:
                secretName: mysql-backup-ssh-cred
                defaultMode: 400
          containers:
            - name: main
              image: 'jclab/mysql-backupper:release-0.0.1'
              command:
                - /bin/bash
                - '-c'
                - >-
                  set -e;
                  BACKUP_FILE_NAME=mysql-`date "+%Y-%m-%d_%H-%M-%S"`.sql;
                  export BACKUP_FILE=/tmp/${BACKUP_FILE_NAME};
                  export REMOTE_PATH=/backup/mysql/${BACKUP_FILE_NAME};
                  /opt/mysql_dump.sh;
                  /opt/scp_backup.sh
              env:
                - name: MYSQLDUMP_OPTIONS
                  value: '--all-databases --hex-blob'
                - name: SSH_KEY_FILE
                  value: /root/ssh-secret/privkey.pem
                - name: SSH_KNOWN_HOSTS_FILE
                  value: /root/ssh-secret/known_hosts
                - name: REMOTE_HOST
                  value: 'BACKUP_REMOTE_SERVER'
                - name: REMOTE_USER
                  value: 'BACKUP_REMOTE_USER'
                - name: MYSQL_HOST
                  valueFrom:
                    secretKeyRef:
                      name: mysqk-backup-db-cred
                      value: host
                - name: MYSQL_USER
                  valueFrom:
                    secretKeyRef:
                      name: mysqk-backup-db-cred
                      value: username
                - name: MYSQL_PASS
                  valueFrom:
                    secretKeyRef:
                      name: mysqk-backup-db-cred
                      value: password
              resources: {}
              volumeMounts:
                - name: ssh-secret
                  mountPath: /root/ssh-secret
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              imagePullPolicy: IfNotPresent
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 3

Tag summary

Content type

Image

Digest

Size

16.3 MB

Last updated

over 5 years ago

docker pull jclab/mysql-backupper