Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
Description
About K8s operator
A Kubernetes Operator is a controller that encodes human operational knowledge: how do I run and manage a specific piece of complex software.
Operator is an custom resources in K8s involving specific knowledge of application (in our case MariaDB) in order to automate lifecycle.
This task should create MariaDB operator used to create the MariaDB statefull application in a cluster.
Project scope
The goal of this project is to create a Kubernetes Operator. As a Minimum Viable Product (MVP), the operator needs to know how to:
- Start a MariaDB Server
- Set up the initial database (mariadb_install_db, authentication methods, networking ports)
- Set up a complete and secure networking configuration (service) between nodes.
- Configuration method for specifying which machines to be used as nodes.
- Configuration method for specifying data directory locations.
- Set up a replication topology - primary server (master) & at least 2 replicas (slaves) (Asynchronous replication)
- Provides HA.
- Monitor the status of all MariaDB nodes in the cluster and restart in case nodes go down.
- Easy management of cluster; Change the size parameter to add/remove members from cluster
Things that are not part of MVP, but are to be considered as future development:
- Ability to take backups (on demand or scheduled backup - locally or to object storage -S3, restore DB from existing backup)
- Provisioning of slaves from backups.
- Ability to fine tune which machines get assigned to which nodes. (For example master node might need to have more CPUs).
- Detect master failure and automatically promote one of the slaves to become the new master.
- Proxying. Automatically route writes to Primary/ies and distribute reads between all members (example haproxy, proxysql).
- Encryption in transit and Data-At-Rest
- Usage of private docker registries
- Helm chart to deploy the MariaDB operator (instead of editing yaml file).
- Change from master-slave replication to Galera replication topology.
Attachments
Issue Links
- is part of
-
MDBF-298 MariaDB and Kubernetes
- Open