...
- 2 init containers:
- init-mysql
- Generates special MySQL config files based on an Ordinal index. (the ordinal index is saved in server-id.cnf)
- Uses config-map to copy the master.cnf/slave.cnf files to the conf.d directory.
- clone-mysql:
- Performs a clone operation the first time the Slave comes up, assuming that Master already has some data on it when the Slave starts.
- Uses the OpenSource tool Percona for this job
- init-mysql
- 2 containers:
- mysqld:
- Actual MySQL server
- xtrabackup sidecar:
- Handles all of the replication between this server and the Master.
- Handles requests from other Pods for data cloning.
- mysqld:
2 Services are created:
- DBHost should be used for any write operation (writes to master)
- DBHost-Read should be used for read operations (can query Slaves besides master)
As mentioned above, nfs-provisioner was used to dynamically create Persistent Volume Claims to enable dynamic scaling of slaves.
...