Author: Anel Husakovic
-
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 […]
-
Create statefulset MariaDB application in K8s
In the previous blog we created a stateless application, deployed with K8s resource Deployment, which allows one to replicate the application, but where data is lost when Pods are restarted, meaning there were no data consistency. In the same blog we used PersistentVolumeClaim for dynamic provisioning of PersistentVolume, but we used Deployment, meant for stateless application, and this way is *not recommended* for statefulset application where each replica should have its own persistent volume. The proper way to achieve that […]
-
MariaDB & K8s: Deploy MariaDB and WordPress using Persistent Volumes
In the previous blog, MariaDB & K8s: Create a Secret and use it in MariaDB deployment, we used the Secrets resource to hide confidential root user data, and in the blog before that in the series, MariaDB & K8s: Communication between containers/Deployments, we created 2 containers (namely MariaDB and phpmyadmin) in a Pod. That kind of deployment didn’t have any persistent volumes.
In this blog we are going to create separate Deployments for MariaDB and WordPress applications as well as […]
-
MariaDB & K8s: Create a Secret and use it in MariaDB deployment
In the previous blog we created a stateless application, deployed it with K8s resource Deployment, and exposed the root password, which, regarding security, is of course not recommended. K8s allows one to hide confidential data using specific K8s resources.
Let’s see how to use Secrets in K8s.
Secrets in K8s
In order to save confidential data one can use a K8s resource called Secret.
One can create Secret from the CLI by running kubectl create secret.
Here we will use […]
-
Quick peek: MariaDB Galera Cluster Security talk
Seppo Jaakola is going to present the topic “MariaDB Galera Cluster Security” at the Security MariaDB Server Fest (Wed 6 April 2022).
I’m currently watching his talk. Let me share with you some details. Seppo is not talking about native MariaDB security features that are by default supported by Galera, but due to the distributed cluster topology additional security related measures are needed. He talks about cluster topology, cluster communication security, Galera enhancement Data at REST encryption and the new […]
-
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 […]
-
Start MariaDB in K8s
This is the first in a series of blogs explaining how to use MariaDB in Kubernetes (K8s), as well as explaining some important concepts of K8s and of MariaDB.
This blog explains how to start MariaDB as a stateless application in K8s using the CLI and explores different commands you can run on your CLI.
The prerequisites are that you have installed kubectl (which will also install Docker runtime) and minikube (local K8s).
Let’s first start the minikube
The Pod […]
-
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 […]