文章目录
前言
前几篇文章重点是研究mysql的持久化和多POD部署,所以为了便于研究都是采用手工方式来创建mysql的数据库表。显然这不符合实际情况,今天我们就重点来研究一下POD启动的时候自动调用初始化脚本创建数据库表。
一、ConfigMap
K8S提供ConfigMap资源来管理一些可变配置信息,如配置文件、环境变量和命令行参数等等。ConfigMap的主要作用是解耦和复用,把应用与配置文件解耦,配置文件不用跟应用放在一个镜像中,而是在部署时生成,而且一个配置文件可以给多个应用使用实现复用功能。那么在POD启动的时候就可以通过ConfigMap来生成一个配置文件,以Volume的形式挂载为容器内的文件,供应用初始化时使用。
二、mysql初始化
编写mysql-init.yaml文件如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-init-config
data:
init.sql: |
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE IF NOT EXISTS table1(column1 varchar(20),column2 varchar(20));
INSERT INTO table1(column1,column2) VALUES('abcd','1234'