Quickstart
This guide aims to provide a quick way to get started with the MariaDB Enterprise Kubernetes 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.yamlNext, 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: truekubectl apply -f mariadb-galera.yamlLet's break it down:
rootPasswordSecretKeyRef: A reference to aSecretcontaining the root password.imagePullSecrets: The name of theSecretcontaining the customer credentials to pull the MariaDB Enterprise Server image.maxScaleRef: The name of theMaxScaleCR that we will be creating right after.username,passwordSecretKeyRefanddatabase: 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 101sNow, 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: 2kubectl apply -f maxscale-galera.yamlAgain, let's break it down:
imagePullSecrets: The name of theSecretcontaining the customer credentials to pull the MaxScale image.mariaDbRef: A reference to theMariaDBCR 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 10mTo 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=mariadb:11.4 -- 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 Kubernetes Operator!
Refer to the documentation, the API reference and the examples catalog for further detail.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Last updated
Was this helpful?

