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 #查询每个字段下面有哪些子项,并且有其说明这里,作为参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端