ConfigMap allow you to decouple configuration artifacts and secrets from image content to keep containerized applications portable. Using ConfigMap, you can independently control the MySQL configuration.
We will create a new Namespace
called mysql
that will host all the components.
kubectl create namespace mysql
Run the following commands to create the ConfigMap
.
cd ${HOME}/environment/ebs_statefulset
cat << EoF > ${HOME}/environment/ebs_statefulset/mysql-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
namespace: mysql
labels:
app: mysql
data:
master.cnf: |
# Apply this config only on the leader.
[mysqld]
log-bin
slave.cnf: |
# Apply this config only on followers.
[mysqld]
super-read-only
EoF
The ConfigMap
stores master.cnf
, slave.cnf
and passes them when initializing leader and follower pods defined in StatefulSet:
Create “mysql-config” ConfigMap
.
kubectl create -f ${HOME}/environment/ebs_statefulset/mysql-configmap.yaml