| title | MySQL Cluster Backups | ||||||
|---|---|---|---|---|---|---|---|
| linktitle | Backups | ||||||
| description | MySQL operator provides effortless backups while keeping the cluster highly-available. | ||||||
| keywords |
|
||||||
| menu |
|
Backups are stored on object storage services like S3 or Google Cloud Storage.
In order to be able to store a backup, the secret defined under backupBucketSecretName must have
the credentials to store those backups. The backups are uploaded using Rclone. The contents of the secret are used to generate a rclone.conf in docker-entrypoint.sh.
You need to specify the backupBucketURL for the cluster to an URL like s3://BUCKET_NAME, and a secret.
Create a file named example-backup-secret.yaml and copy into it the following YAML code:
apiVersion: v1
kind: Secret
metadata:
name: my-cluster-backup-secret
type: Opaque
data:
AWS_ACCESS_KEY_ID: #
AWS_SECRET_ACCESS_KEY: #
# Optional, the AWS region to connect
# AWS_REGION: us-east1
# Optional, specify the storage class
# AWS_STORAGE_CLASS: standard
# Optional, canned ACL to use
# AWS_ACL:
# Optional, the S3 provider to use (default: AWS)
# S3_PROVIDER: AWS
# Optional, the S3 endpoint to use (for when you use a different S3_PROVIDER)
# S3_ENDPOINT:Then run this command:
$ kubectl apply -f example-backup-secret.yamlYou need to specify the backupBucketURL for the cluster to an URL like gs://BUCKET_NAME, and a secret.
Create a file named example-backup-secret.yaml and copy into it the following YAML code:
apiVersion: v1
kind: Secret
metadata:
name: my-cluster-backup-secret
type: Opaque
data:
GCS_SERVICE_ACCOUNT_JSON_KEY: #
GCS_PROJECT_ID: #Then run this command:
$ kubectl apply -f example-backup-secret.yaml
GCS_SERVICE_ACCOUNT_JSON_KEYandGCS_PROJECT_IDmust be base64 encoded.
You need to specify the backupBucketURL for the cluster to an URL like azure://STORAGE_ACCOUNT, and a secret.
Create a file named example-backup-secret.yaml and copy into it the following YAML code:
apiVersion: v1
kind: Secret
metadata:
name: my-cluster-backup-secret
type: Opaque
data:
AZUREBLOB_ACCOUNT: #
AZUREBLOB_KEY: #Then run this command:
$ kubectl apply -f example-backup-secret.yaml
AZUREBLOB_ACCOUNTandAZUREBLOB_KEYmust be base64 encoded.
You need to create a file named example-backup.yaml and copy into it the following YAML code:
apiVersion: mysql.presslabs.org/v1alpha1
kind: MysqlBackup
metadata:
name: my-cluster-backup
spec:
clusterName: my-clusterRun the following command:
$ kubectl apply -f example-backup.yamlYou need to specify the backupBucketURL for the corresponding cluster to an URL like gs://BUCKET_NAME and backupSecretName.
Open the file named example-cluster.yaml and copy into it the following YAML code:
apiVersion: mysql.presslabs.org/v1alpha1
kind: MysqlCluster
metadata:
name: my-cluster
spec:
replicas: 2
secretName: my-secret
backupSecretName: my-cluster-backup-secret
backupURL: gs://pl-test-mysql-operator/Then run the following command:
$ kubectl apply -f example-cluster.yaml$ kubectl get mysqlbackupNAME AGE
my-cluster-backup 1m
my-cluster-auto-backup-20180402-1604 1d$ kubectl describe backup my-cluster-backup...
Status:
Completed: true
Conditions:
Last Transition Time: 2018-03-21T16:02:56Z
Message:
Reason:
Status: True
Type: Complete
...