Congfigmap
资源名缩写:cm
1.管理一组key/value的键值对,可以作为配置文件注入到pod中
2.允许文件镜像分离,使容器化的应用的程序具有可移植性
3.内建机制,将configmap存储在etcd中,通过Volume的方式变成pod中的配置文件
4.倘若发生pod的迁移(主动或被动),configmap中的参数都会自动映射到对应的pod中
5.如果已创建的configmap中发生key/value的修正,则映射到pod中的”配置文件“也会发生相应的修改
创建configmap的方式:
一、命令模式
文件名:configmap-test.yml
文件内容:
enemies=aliens
lives=3
enemies.cheat=true
1.--from-file (可跟目录)
kubectl creat cm [configmap名] --from-file=[文件名]
configmap生成示例:
data:
configmap-test.yml: |
enemies=aliens
lives=3
enemies.cheat=true
kubectl creat cm [configmap名] --from-file=game=[文件名](修改键名)
configmap生成示例:
data:
game: |
enemies=aliens
lives=3
enemies.cheat=true
2.--from-literal
kubectl creat cm [configmap名] --from-literal=aa=bb --from-literal=people=3
configmap生成示例:
data:
aa: bb
people: 3
3.--from-env-file
kubectl creat cm [configmap名] --from-env-file=[文件名]
configmap生成示例:
data:
enemies: aliens
lives: 3
enemies.cheat: true
以上三种的命令的方式创建configmap可以混合使用
二、以yaml文件的方式创建
命令
kubectl creat -f [configmap的创建文件名]
configmap的创建文件文件示例
apiVersion: v1
data:
configmap-test.yml: |
enemies=aliens
lives=3
enemies.cheat=true
aa: bb
people: 3
kind: ConfigMap
metadata:
name: test-configmap
lable:
name: test
注:
1.使用命令行创建时,确保引用文件中的正确性
2.apply创建时,如已存在相同的configmap,则会按照yaml中的内容重新修改。create创建时,如已存在相同的configmap,则会报错。
额外指令:
1.删除configmap命令
kubectl delete cm [configmap名]
如使用yaml文件创建的则可以使用
kebectl delete -f [configmap的创建文件名]
2.创建configmap的其他命令
kubectl apply -f [configmap的创建文件名]
3.查看configmap
kubectl get cm [configmap名] -o [格式 ex: yaml,json]
4.修改configmap中的数据
kubectl edit cm [configmap名]
kubectl patch cm [configmap名] -p '{"data": {"configmap-test.yml":"aa=bb\ncc=dd"}}'(既存替换,否则追加)
5.追加标签
kubectl lable cm [configmap名] [标签 ex: name=true]
6.追加annotetions:
kubectl annotate cm [configmap名] [注释 ex: name=test]