Quickstart
This guide aims to provide a quick way to get started with the MariaDB Enterprise Operator for Kubernetes. It will walk you through the process of deploying a MariaDB Enterprise Cluster and MaxScale via the MariaDB
and MaxScale
CRs (Custom Resources) respectively.
Before you begin, ensure you meet the following prerequisites:
Configure your customer access for docker.mariadb.com
The first step will be configuring a Secret
with the credentials used by the MariaDB
CR:
apiVersion: v1
kind: Secret
metadata:
name: mariadb
stringData:
password: MariaDB11!
kubectl apply -f secret.yaml
Next, we will deploy a MariaDB Enterprise Cluster (Galera) using the following CR:
apiVersion: enterprise.mariadb.com/v1alpha1
kind: MariaDB
metadata:
name: mariadb-galera
spec:
rootPasswordSecretKeyRef:
name: mariadb
key: password
imagePullSecrets:
- name: mariadb-enterprise
maxScaleRef:
name: maxscale-galera
username: mariadb
passwordSecretKeyRef:
name: mariadb
key: password
database: mariadb
storage:
size: 1Gi
replicas: 3
galera:
enabled: true
kubectl apply -f mariadb-galera.yaml
Let's break it down:
rootPasswordSecretKeyRef
: A reference to aSecret
containing the root password.imagePullSecrets
: The name of theSecret
containing the customer credentials to pull the MariaDB Enterprise Server image.maxScaleRef
: The name of theMaxScale
CR that we will be creating right after.username
,passwordSecretKeyRef
anddatabase
: The initial user and database to create.storage
: The size of the volume that will back the data directory.replicas
: The number of MariaDB Enterprise Server instances to deploy.galera
: Configuration for the Galera clustering.
After applying the CR, we can observe the MariaDB Pods
being created:
❯ kubectl get pods
NAME READY STATUS RESTARTS AGE
mariadb-galera-0 2/2 Running 0 101s
mariadb-galera-1 2/2 Running 0 101s
mariadb-galera-2 2/2 Running 0 101s
Now, let's deploy a MaxScale
CR:
apiVersion: enterprise.mariadb.com/v1alpha1
kind: MaxScale
metadata:
name: maxscale-galera
spec:
imagePullSecrets:
- name: mariadb-enterprise
mariaDbRef:
name: mariadb-galera
replicas: 2
kubectl apply -f maxscale-galera.yaml
Again, let's break it down:
imagePullSecrets
: The name of theSecret
containing the customer credentials to pull the MaxScale image.mariaDbRef
: A reference to theMariaDB
CR that we want to connect to.replicas
: The number of MaxScale instances to deploy.
After applying the CR, we can observe the MaxScale Pods
being created, and that both the MariaDB
and MaxScale
CRs will become ready eventually:
❯ kubectl get pods
mariadb-galera-0 2/2 Running 0 10m
mariadb-galera-1 2/2 Running 0 10m
mariadb-galera-2 2/2 Running 0 10m
maxscale-galera-0 1/1 Running 0 81s
maxscale-galera-1 1/1 Running 0 81s
❯ kubectl get maxscale
NAME READY STATUS PRIMARY AGE
maxscale-galera True Running mariadb-galera-0 65s
❯ kubectl get mariadb
NAME READY STATUS PRIMARY UPDATES AGE
mariadb-galera True Running mariadb-galera-0 ReplicasFirstPrimaryLast 10m
To conclude, let's connect to the MariaDB Enterprise Cluster through MaxScale using the initial user and database we initially defined in the MariaDB
CR:
❯ kubectl run mariadb-connect --rm -it --image=docker.mariadb.com/enterprise-server:11.4.4-2 -- bash -c "mariadb -u mariadb -p'MariaDB11!' --ssl=false -h maxscale-galera"
If you don't see a command prompt, try pressing enter.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mariadb |
+--------------------+
2 rows in set (0.001 sec)
You have successfully deployed a MariaDB Enterprise Cluster with MaxScale in Kubernetes using the MariaDB Enterprise Operator!
Refer to the documentation, the API referenceand the examples catalog for further detail.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Last updated
Was this helpful?