MariaDB & K8s: How to replicate MariaDB in K8s

In the previous blog we have seen how to create a statefulset MariaDB application. Also, we learned how replication works in MariaDB in this blog. Now, we will try to create a replicated statefulset application. As good references for creating this blog, I would like to give credit to the Kubernetes documentation as well as an example from Alibaba Cloud.

Configure replication

To replicate a MariaDB application we are going to create a statefulset that will consist of a single init container and one application container.

A mirror manager system to simplify the distribution of MariaDB binaries and packages

The MariaDB Foundation relies on public mirrors to distribute binaries and packages to the world. An overview of the full list can be seen at https://mirmon.mariadb.org. If you would like to volunteer to become a mirror, take a look at https://mariadb.com/kb/en/mirror-sites-for-mariadb/.

Our download page already automatically suggests one of those mirrors for you to download our binaries. Same goes for the repository configuration tool; see https://mariadb.org/download.

The purpose of this blog post is to present you a new system that we have been testing since December 2021 and that we believe is now ready for public adoption.

MariaDB replication using containers

In this blog we are going to demonstrate how to replicate a MariaDB database that runs in a Docker container (let’s call it primary) to one or more MariaDB servers that run in a Docker container (let’s call them replicas) using binary logging, a method that creates binary log files and an index that contains the record of all changes to the database (both data and structure). You can find an overview of how replication works here and you can find how to setup replication here. An example can be found in this GitHub script.

China Has Great Potential for MariaDB Server

Our Board Meeting in April 2022 elected two seasoned new voting board members. One of them is Xiang Peng (Sean), Director, RDS Open Source Databases at Alibaba Cloud. I had the pleasure of having a Fireside Chat with him, which we recorded and put up on YouTube. Read on for his recommendations for MariaDB Foundation in China.

A Man With the Right CV for MariaDB Foundation

Sean, as he calls himself for those of us who have problems remembering, reading or writing his real name 彭祥, is a great resource for MariaDB Foundation.

Cyber Protection – best practices for backing up data

A few weeks ago we hosted a webinar together with Acronis and CPanel on security and backup best practices as both provide software in this space. Acronis develops Cyber Security cloud based software particularly specializing in backup and disaster recovery for other service providers. CPanel in turn helps those service providers to enable their customers to administer their systems via a fully fledged dashboard. The webinar was a follow-up on another join presentation at CloudFest. The webinar presented quite a number of good ideas and I highly recommend you watch it.

MariaDB Server Documentation as PDF

MariaDB Server Documentation is now released as a single PDF file, browsable offline. Download the over 3000 pages and check it out!

Better late than never

Some things take long! In 2014, there was a request on Jira for delivering the MariaDB Server Knowledgebase in one PDF file. That’s over seven years ago. MDEV-6881, you see it in the number already – we are now at well beyond MDEV-28000.

The request has always been in the back of our heads. What triggered it now was playing around with Python and the relative ease of transforming one format to another, including PDF.

MariaDB & K8s: Communication between containers/Deployments

In the previous blog, a background Deployment resource was created from a YAML file, consisting of a single container (MariaDB) that acts as a background container.

In this blog we are going to proceed to create the frontend container to communicate with the backend through a Service and other resources.

About Services

When an application is run through the Deployment Pods are created and destroyed dynamically. When created, they get the internal IP address in a cluster, and since they are ephemeral, there needs to be a stable way to allow communications between Pods.

Create a link to a remote server and access data using CONNECT SE

In this blog we are going to see how to create a link to a remote server and use it to access multiple tables at once.
In the previous blog we have seen how to establish a remote connection between Docker containers.
The way we did it was to specify the connection string to reference a single table only.
But what if we need more tables, what if need a whole database?

The solution is to link to a remote database with the CREATE SERVER statement.
A link obtained this way can be passed to the CREATE TABLE statement of a storage engine (SE) to make a connection where using the table discovery feature SE will find out about the table fields and create the table.