kubernetst
来源:互联网 发布:mac 解压rar命令 编辑:程序博客网 时间:2024/06/06 19:37
ConfigMap学习
ConfigMap
单独的ConfigMap存在是没有任何意义的,ConfigMap的存在就是为了让应用来使用它,所以ConfigMap通常会和具体的某一个或者多个应用相关联上。
ConfigMap使用
在k8s中,pod或者deploy或者其他的resource需要使用到ConfigMap,则会进行如下的步骤:
- 创建相应的ConfigMap
- 在pod或者deploy中,指定申明一个Volume,指定Volume名称,并指定类型为ConfigMap,指定ConfigMap的name为第一步中创建的ConfigMap的名称,并且指定读写权限
- 在Container中指定VolumeMount,name为第二步中指定的Volume名称,MountPath为挂载到容器中的目录
- 最后ConfigMap的data下的数据会呗挂载到容器指定目录下,表现的形式是:以data中的key为文件名,value为文件内容。
使用ConfigMap的json如下:
ConfigMap:
{ "kind": "ConfigMap", "apiVersion": "v1", "metadata": { "name": "dashboard-application", "namespace": "test", }, "data": { "2048": "{\"name\":\"test\",\"port\":8080\n}", "test1": "asdasdasd" } }
Pod:不完整的pod,只是说明问题:
"spec": {"volumes": [ { "name": "configmap-volume-1", "configMap": { "name": "dashboard-application", "defaultMode": 420 } }, { "name": "default-token-6yrcs", "secret": { "secretName": "default-token-6yrcs", "defaultMode": 420 } }],"containers": [ { "name": "game2048", "image": "2048:latest", "args": [ "nginx", "-c", "/etc/nginx/nginx.log.conf" ], "ports": [ { "containerPort": 80, "protocol": "TCP" } ], "env": [ { "name": "PATH", "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } ], "resources": { "limits": { "cpu": "100m", "memory": "512Mi" }, "requests": { "cpu": "100m", "memory": "512Mi" } }, "volumeMounts": [ { "name": "configmap-volume-1", "mountPath": "/opt" }, { "name": "default-token-6yrcs", "readOnly": true, "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent" }]