点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习 Go 语言
本文通过搭建 MySQL 环境来了解 k8s 的重要概念,包括持久卷,网络和参数配置。这是下篇,专门讲解参数配置。如果你有些地方不能完全看明白,请先看上篇"通过搭建 MySQL 掌握 k8s(Kubernetes)重要概念(上):网络与持久卷"
配置参数
参数配置是 K8s 里比较重要的一个概念,它包含了下面三个部分:
ConfigMap:是用来保存共享配置数据的。当你需要在不同的配置文件之间共享数据时,你可以把这些数据以键值对的形式存储在 configMap 中。详情请见"Configure a Pod to Use a ConfigMap[1]"
Secret:它跟 configMap 的作用很类似,但是用来存储保密信息的,例如数据库的口令。详情请见"Secrets[2]"
Environment Variable:它就是我们所熟悉的环境变量,一般是由系统来定义。不同的系统例如 Linux 和 Windows 都有自己的方法来定义环境变量。k8s 的环境变量主要是用来向容器传递数据的。详情请见"Container Environment Variables[3]"
configMap
下面就是 configMap(mysql-config.yaml)的配置文件。它的结构很简单,最重要的就是 data 部分,里面是键、值列表。这是比较简单的一个例子,复杂的还可以包含文件和键、值列表的组合。你可以把 configMap 单独放在一个文件里,这样调试起来比较方便,也可以把它和部署(Deployment)放在一起,这样运行起来比较方便。
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config # name of ConfigMap, referenced in other files
data:
db-host: mysql # host address of mysql server
db-name: service_config # name of the database
configMap 的运行命令与其它对象不同,例如一般的运行命令是“k