Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
Description
Introduction
During the rise of microservices, Kubernetes helps in managing containerized applications in different environments (physical, virtual, cloud, hybrid).
One of the "direct" competitors of Kubernetes is docker-swarm. The purpose of Kubernetes is to facilitate starting, stopping, running a complex application stack (similar to the LAMP stack, but with many more possibilities covering distributed systems too).
A Kubernetes Operator is a controller that encodes human operational knowledge: how do I run and manage a specific piece of complex software.
Why this matters for MariaDB Foundation
Modern day applications are built using a complex technology stack. Containers are one piece of the puzzle and container orchestration is another. We cover the containers aspect by supplying MariaDB Server Docker images, however MariaDB Server lacks in tooling for easily deploying server nodes with the most popular orchestration platform - Kubernetes. Being well supported here should greatly increase the user base of MariaDB as it will reduce the effort required to build applications with MariaDB.
Philosophy behind the project
The project will attempt to kickstart a community around Kubernetes. We will be building a Minimum Viable Product as defined in MDBF-299, then seek to grow contributors to improve the operator.
External projects for MariaDB
- There are already multiple helm charts found on Artifacthub-MariaDB that help configure and deploy MariaDB PODs and services
- There is single MariaDB operator that was used as proof of concept in alpha version.
External projects related to K8 MariaDB (MySQL)
- Percona (has operator Percona XtraDB Cluster that can run on MySQL(PXC)/MongoDB(percona-server-mongodb-operator)/ PostgreSQL
(percona-server-postgresql-operator)
a) Percona Kubernetes Operators - MYSQL
a) GitHub MySQL Operator for Kubernetes - preview state
b) Introducing the Oracle MySQL Operator for Kubernetes
Possibility of using other projects as a base
- Percona - Can not be used as a base, since it is integrated PXC product, and used for MySQL.
- MySQL - Not usable as a base. Supports only Group replication.
Already existing documentation
- MariaDB and Kubernetes - Knowledge base article