All pages
Powered by GitBook
1 of 1

Loading...

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

  • Install the MariaDB Enterprise Kubernetes Operator

The first step will be configuring a Secret with the credentials used by the MariaDB CR:

Next, we will deploy a MariaDB Enterprise Cluster (Galera) using the following CR:

Let's break it down:

  • rootPasswordSecretKeyRef: A reference to a Secret containing the root password.

  • imagePullSecrets: The name of the Secret containing the customer credentials to pull the MariaDB Enterprise Server image.

  • maxScaleRef: The name of the

After applying the CR, we can observe the MariaDB Pods being created:

Now, let's deploy a MaxScale CR:

Again, let's break it down:

  • imagePullSecrets: The name of the Secret containing the customer credentials to pull the MaxScale image.

  • mariaDbRef: A reference to the MariaDB 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:

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:

You have successfully deployed a MariaDB Enterprise Cluster with MaxScale in Kubernetes using the MariaDB Enterprise Kubernetes Operator!

Refer to the , the and the for further detail.

MaxScale
CR that we will be creating right after.
  • username, passwordSecretKeyRef and database: 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.

  • documentation
    API reference
    examples catalog
    apiVersion: v1
    kind: Secret
    metadata:
      name: mariadb
    stringData:
      password: MariaDB11!
    kubectl apply -f secret.yaml
    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
    ❯ 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
    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
    ❯ 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
    ❯ kubectl run mariadb-connect --rm -it --image=docker.mariadb.com/enterprise-server: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)

    This page is: Copyright © 2025 MariaDB. All rights reserved.