k8s基础概念之三 ConfigMap
一般用configmap去管理一些配置文件,或者是大量的环境变量信息,configmap将配置和pod分开,有一个nginx,nginx.conf---》configmap.nginx。更易于配置文件的更改和管理
configmap加密,而secret不加密
ConfigMap的简单命令
kubectl create configmap test --from-file=/root/yaml/nginx.yaml #将/root/yaml/nginx.yaml文件写入configmap 名字为test(存储配置文件) kubectl create configmap test02 --from-file=/root/yaml/ #将/root/yaml/目录下的文件写入configmap,configmap 名字为test02 kubectl create configmap test01 --from-literal=MYSQL_ROOT_PASSWORD=123456 #变量储存到configmap,变量名为MYSQL_ROOT_PASSWORD,值为123456,可以跟更多变量,在尾部加--from-literal=key=value 即可 kubectl describe configmaps test #查询上面的结果
apiVersion: v1 kind: ConfigMap metadata: nginx data: MYSQL_ROOT_PASSWORD: '123456' #定义一个变量,值类型为字符串,所以需要加引号 my.cnf: | [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql character-set-server = utf8 log-error = /var/log/mysqld.log # 中继日志 relay-log=mysql-relay-bin replicate-wild-ignore-table=mysql.% replicate-wild-ignore-table=test.% replicate-wild-ignore-table=information_schema.% #文件名为 my.cnf 需要换行的话冒号后面需要加 |
简单的使用configmap
apiVersion: v1 kind: ConfigMap metadata: name: test04 data: MYSQL_ROOT_PASSWORD: '123456' #定义一个变量,值类型为字符串,所以需要加引号 my.cnf: | [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql character-set-server = utf8 log-error = /var/log/mysqld.log # 中继日志 relay-log=mysql-relay-bin replicate-wild-ignore-table=mysql.% replicate-wild-ignore-table=test.% replicate-wild-ignore-table=information_schema.% --- kind: Deployment apiVersion: apps/v1 metadata: name: mysql spec: selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /opt #挂载到那个目录 name: test command: - sh - -c - sleep 100 volumes: - name: test #存储卷的名称 configMap: name: test04 #configmap名字 items: - key: my.cnf #configmap 内文件 path: my.cnf #configmap挂载到容器内的相对路径
查看帮助:
kubectl explain deployment.spec.template.spec.volumes.configMap.items #查询每个字段下面有哪些子项,并且有其说明这里,作为参考