You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MySQL Operator enables bulletproof MySQL on Kubernetes. It manages all the necessary resources for
4
-
deploying and managing a highly available MySQL cluster. It provides efortless backups, while
5
-
keeping the cluster highly-available.
3
+
MySQL Operator enables bulletproof MySQL on Kubernetes. It manages all the necessary resources for deploying and managing a highly available MySQL cluster. It provides efortless backups, while keeping the cluster highly available.
6
4
7
-
MySQL Operator was developed by the awesome engineering team at
8
-
[Presslabs](https://www.presslabs.com/), a Managed WordPress Hosting provider.
5
+
MySQL Operator was developed by the awesome engineering team at [Presslabs](https://www.presslabs.com/), a Smart Managed WordPress Hosting platform.
9
6
10
7
For more open-source projects, check [Presslabs Code](https://www.presslabs.com/code/).
11
8
12
9
## Goals and status
13
10
14
11
The main goals of this operator are:
15
12
16
-
1. Easily deploy mysql clusters in kubernetes (cluster-per-service model)
13
+
1. Easily deploy MySQL clusters in Kubernetes (cluster-per-service model)
17
14
2. Friendly to devops (monitoring, availability, scalability and backup stories solved)
18
15
3. Out-of-the-box backups (scheduled and on demand) and point-in-time recovery
19
-
4. Support for cloning in cluster and across clusters
16
+
4. Support for cloning in cluster and across clusters.
20
17
21
-
The operator is to be considered alpha and not suited for critical production workloads. We
22
-
(Presslabs) sucessfully use it at the moment for some non-critical production workloads.
18
+
The operator is to be considered alpha and not suitable for critical production workloads. We, Presslabs, sucessfully use it at the moment for some non-critical production workloads.
23
19
24
20
## Contributing
25
21
26
-
We welcome all contributions in the form of new issues for feature requests, bugs or directly pull
27
-
requests. We are open to discuss ideas to improve the operator and would also love to find out where
28
-
and how it is used. The discussion related to the project should happen on Kubernetes Community
29
-
[Slack](https://kubernetes.slack.com/messages/CEKQXFR0E/). The current developers of the project can
We welcome all contributions in the form of new issues for feature requests, bugs or even pull requests. We are open to discuss ideas on how to improve the operator and would also love to find out where and how it's used. The discussion related to this project should happen on the Kubernetes Community [Slack](https://kubernetes.slack.com/messages/CEKQXFR0E/). The current maintainers of this project can be reached via [email](mailto:[email protected]), too.
31
23
32
24
## Documentation
33
25
34
26
More documentation can be found in [docs](docs/README.md)
35
27
36
28
## Controller deploy
37
29
38
-
To deploy this controller, use the provided helm chart, by running:
30
+
To deploy this controller, use the provided helm chart by running:
For more information about chart values see chart [README](hack/charts/mysql-operator/README.md). This chart will deploy the controller together with an [orchestrator](https://github.com/github/orchestrator) cluster.
48
38
49
-
__NOTE__: MySQL Operator 0.2.x requires at least Kubernetes 1.11.x (or 1.10.x with alpha features)
50
-
while version 0.1.x is known to work with Kubernetes up 1.9.x. For upgrading check the [0.2.x
51
-
upgrade notes](#v02x-upgrade) since some manual seps are required.
39
+
__NOTE__: MySQL operator 0.2.x requires at least Kubernetes 1.11.x (or 1.10.x with alpha features) while version 0.1.x is known to work with Kubernetes up 1.9.x. To upgrade, check the [0.2.x upgrade notes](#v02x-upgrade) as some additional steps are required.
52
40
53
41
## Controller upgrade
54
42
55
-
Maybe upgrading the MySQL operator to a newer version requires additional steps that has to be done.
56
-
Those steps can be found in the operator documentation at [upgrades](docs/operator-upgrades.md)
57
-
section.
43
+
Maybe upgrading the MySQL operator to a newer version requires additional steps. Those steps can be found in the operator's documentation at [upgrades](docs/operator-upgrades.md) section.
This project uses Percona Server for MySQL 5.7 because of backup improvements (eg. backup locks),
70
-
monitoring improvements and some serviceability improvements (eg. utility user). Although we could
71
-
have used MariaDB, our primary focus being WordPress, we wanted a drop-in rather than a fork. In the
72
-
future we might support MariaDB if that can be implemented in a compatible way.
55
+
This project uses Percona Server for MySQL 5.7 because of backup improvements (eg. backup locks), monitoring improvements and some serviceability improvements (eg. utility user). Although we could have used MariaDB, our primary focus being WordPress, we wanted a drop-in rather than a fork. In the future we might support MariaDB if that can be implemented in a compatible way.
73
56
74
57
## License
75
58
76
-
This project is licensed under Apache 2.0 license. Read the [LICENSE](LICENSE) file in the top
77
-
distribution directory, for the full license text.
59
+
This project is licensed under Apache 2.0 license. Read the [LICENSE](LICENSE) file in the top distribution directory for the full license text.
* [Getting started](getting-started.md), provides an overview over deploying and using MySQL
8
-
Operator
9
-
* [Deploy a MySQL cluster](deploy-mysql-cluster.md), describes in detail how a cluster can be
10
-
installed and configured.
11
-
* [Configure backups](backups.md), this section shows how to configure and take backups of a
12
-
cluster.
13
-
* [Recurrent backups](cluster-recurrent-backups.md), it describe how to setup recurrent backups for
14
-
the cluster.
15
-
* [Restore a cluster](cluster-recover.md), it describes how to restore a cluster from a backup.
16
-
* [How to integrate](integrate-operator.md) the operator with your deployment setup. This presents
17
-
a simple way of using MySQL Operator and helm to deploy your application.
18
-
* [Orchestrator](orchestrator.md), describes how to access orchestrator for more details.
7
+
* [Getting started](getting-started.md) provides an overview over deploying and using the MySQL operator
8
+
* [Deploy a MySQL cluster](deploy-mysql-cluster.md) describes in detail how a cluster can be installed and configured
9
+
* [Configure backups](backups.md) shows how to configure and take backups of a cluster
10
+
* [Recurrent backups](cluster-recurrent-backups.md) describes how to setup recurrent backups for the cluster
11
+
* [Restore a cluster](cluster-recover.md) explains how to restore a cluster from a backup
12
+
* [How to integrate](integrate-operator.md) the operator with your deployment setup. This presents a simple way of using the MySQL operator and helm to deploy your application
13
+
* [Orchestrator](orchestrator.md) shows you how to access the orchestrator for more details.
Copy file name to clipboardExpand all lines: docs/backups.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
-
title: MySQL Operator Backups
3
-
linktitle: MySQL Operator Backups
4
-
description: MySQL Operator provides effortless backups, while keeping the cluster highly-available.
2
+
title: MySQL operator Backups
3
+
linktitle: MySQL operator Backups
4
+
description: MySQL operator provides effortless backups while keeping the cluster highly-available.
5
5
categories: [mysql operator]
6
6
keywords: [mysql operator]
7
7
menu:
@@ -13,13 +13,13 @@ aliases: []
13
13
toc: true
14
14
---
15
15
16
-
Backups are stored on object storage services like S3 or google cloud storage.
16
+
Backups are stored on object storage services like S3 or Google Cloud Storage.
17
17
18
-
In order to be able to store backup, the secret defined under `backupBucketSecretName` must the credentials to store those backups.
18
+
In order to be able to store a backup, the secret defined under `backupBucketSecretName` must have the credentials to store those backups.
19
19
The backups are uploaded using [Rclone](https://rclone.org/).
20
-
The contents of the secret are used to generate an rclone.conf in [hack/docker/mysql-helper/docker-entrypoint.sh](https://github.com/presslabs/mysql-operator/blob/master/hack/docker/mysql-helper/docker-entrypoint.sh).
20
+
The contents of the secret are used to generate a rclone.conf in [hack/docker/mysql-helper/docker-entrypoint.sh](https://github.com/presslabs/mysql-operator/blob/master/hack/docker/mysql-helper/docker-entrypoint.sh).
21
21
22
-
### Setup backup to S3
22
+
### Setup a backup on S3
23
23
24
24
You need to specify the `backupBucketURL` for the cluster to an URL like `s3://BUCKET_NAME`, and a secret.
25
25
@@ -53,7 +53,7 @@ Then run this command:
53
53
$ kubectl apply -f example-backup-secret.yaml
54
54
```
55
55
56
-
### Setup backup to gcloud
56
+
### Setup a backup to Google Cloud
57
57
You need to specify the `backupBucketURL` for the cluster to an URL like `gs://BUCKET_NAME`, and a secret.
58
58
59
59
Create a file named `example-backup-secret.yaml` and copy into it the following YAML code:
description: MySQL Operator provides a way to recreate clusters from snapshots
2
+
title: MySQL Cluster Recovery
3
+
linktitle: MySQL cluster recovery
4
+
description: MySQL operator provides a way to recreate clusters from snapshots.
5
5
categories: [mysql operator]
6
6
keywords: [mysql operator]
7
7
menu:
@@ -13,15 +13,11 @@ aliases: []
13
13
toc: true
14
14
---
15
15
16
-
The MySQL Operator provides a way to recreate a cluster based on a backup (snapshot). Just create a
17
-
new cluster with a new name which has `iniBucketURL` field pointed to the right backup.
16
+
The MySQL operator provides a way to recreate a cluster based on a backup (snapshot). Just create a new cluster with a new name which has `iniBucketURL` field pointed to the right backup.
18
17
19
18
## Initialize a cluster from a backup
20
19
21
-
To initialize a new cluster from a backup just set the `initBucketURL` to the backup that you want
22
-
to use. The credentails for connecting to storage provider should be set in the secret specified
23
-
into `initBucketSecretName` field , the same as for `backupSecretName` presented in [Backup]({{< ref
24
-
"./backups.md" >}}) section. Those fields can point to the same secret.
20
+
To initialize a new cluster from a backup just set the `initBucketURL` to the backup that you want to use. The credentails for connecting to the storage provider should be set in the secret specified in the `initBucketSecretName` field , the same as for `backupSecretName` presented in the [Backup]({{< ref "./backups.md" >}}) section. These fields can point to the same secret.
25
21
26
22
27
23
``` yaml
@@ -36,5 +32,4 @@ spec:
36
32
initBucketSecretName: backup-secret
37
33
```
38
34
39
-
This configuration gives you a new cluster that is initialized from the
Copy file name to clipboardExpand all lines: docs/cluster-recurrent-backups.md
+6-14Lines changed: 6 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
-
title: MySQL Operator recurrent backups
2
+
title: MySQL Operator Recurrent Backups
3
3
linktitle: Recurrent Backups for MySQL cluster
4
-
description: MySQL Operator provides effortless recurrent backups while keeping the cluster highly-available.
4
+
description: MySQL operator provides effortless recurrent backups while keeping the cluster highlyavailable.
5
5
categories: [mysql operator]
6
6
keywords: [mysql operator]
7
7
menu:
@@ -14,24 +14,16 @@ toc: true
14
14
---
15
15
16
16
17
-
In the [Backups]({{< ref "./backups.md" >}}) section we take backups on demand. However,
18
-
a cluster can be configured to take recurrent backups. Also, a cluster can be
19
-
initialized from an existing backup.
17
+
In the [Backups]({{< ref "./backups.md" >}}) section we take backups on demand. However, a cluster can be configured to take recurrent backups. Also, a cluster can be initialized from an existing backup.
20
18
21
-
To be able to store backups, the secret defined under
22
-
`backupBucketSecretName` must contain the credentials needed to access storage
23
-
provider(e.g GCS, AWS, etc.)
19
+
To be able to store backups, the secret defined under `backupBucketSecretName` must contain the credentials needed to access the storage provider(e.g GCS, AWS, etc.)
24
20
25
21
26
22
### Setup recurrent backups for MySQL cluster
27
23
28
-
You need to specify the `backupBucketURL` in the cluster spec to an URL like
29
-
`s3://BUCKET_NAME`, and the secret with storage credentials (`backupSecretName`).
24
+
You need to set the `backupBucketURL` in the cluster spec as an URL like `s3://BUCKET_NAME`, and the secret with storage credentials (`backupSecretName`).
30
25
31
-
See the example below to configure a cluster that has recurrent backups that
32
-
runs once per day at midnight. To schedule a backup set `backupSchedule` field that is under
33
-
crontab format. For more details about CRON format can be found
34
-
[here](https://godoc.org/github.com/robfig/cron).
26
+
See the example below to configure a cluster that has recurrent backups that runs once per day at midnight. To schedule a backup set `backupSchedule` field that is under crontab format. For more details about CRON format can be found [here](https://godoc.org/github.com/robfig/cron).
0 commit comments