Configmap

Configmap如何创立?

命令行创立
$ kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charmconfigmap/special-config created$ kubectl get cmNAME             DATA   AGEspecial-config   2      4s$ kubectl get configmaps special-config -o yamlapiVersion: v1data:  special.how: very  special.type: charmkind: ConfigMapmetadata:  creationTimestamp: "2020-08-01T12:14:17Z"  managedFields:  - apiVersion: v1    fieldsType: FieldsV1    fieldsV1:      f:data:        .: {}        f:special.how: {}        f:special.type: {}    manager: kubectl    operation: Update    time: "2020-08-01T12:14:17Z"  name: special-config  namespace: default  resourceVersion: "18003"  selfLink: /api/v1/namespaces/default/configmaps/special-config  uid: 6c116e86-d6b3-4d32-be87-d32f9a608219

基于文件创建
$ kubectl create configmap nginx-config --from-file=./nginx.confconfigmap/nginx-config createdca0gu0@ca0gu0deMBP configmap % kubectl get configmap nginx-config -o yaml   apiVersion: v1data:  nginx.conf: |    #user  nobody;    worker_processes  1;    #error_log  logs/error.log;    #error_log  logs/error.log  notice;    #error_log  logs/error.log  info;    #pid        logs/nginx.pid;    events {        worker_connections  1024;    }    http {        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                          '$status $body_bytes_sent "$http_referer" '                          '"$http_user_agent" "$http_x_forwarded_for"'                  '$upstream_addr $upstream_status $request_time $upstream_response_time';        access_log  /var/log/nginx/access.log main;        error_log   /var/log/nginx/error.log;        server_tokens off;        include       mime.types;        default_type  application/octet-stream;        sendfile        on;        tcp_nopush      on;        client_max_body_size 10m;        client_body_buffer_size 128k;        proxy_connect_timeout 300;        proxy_send_timeout 300;        proxy_read_timeout 300;        proxy_buffer_size 64k;        proxy_buffers 4 512k;        proxy_busy_buffers_size 512k;        proxy_temp_file_write_size 512k;        proxy_temp_path   /data/nginx/proxy_temp;        proxy_cache_path  /data/nginx/proxy_cache levels=1:2 keys_zone=cache_one:2000m inactive=3d max_size=500g;        proxy_redirect off;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        gzip  on;        gzip_min_length 1k;        gzip_buffers 4 16k;        gzip_http_version 1.1;        gzip_comp_level 2;        gzip_types text/plain application/x-javascript text/css application/xml;        gzip_vary on;        upstream go {            server www.cnblogs.com:80 weight=4;            #server 42.121.252.58:80 weight=4;        }        server {                listen    192.168.55.133:80;                #server_name  www.cnblogs.com;                access_log  /var/log/nginx/go.access.log main;                error_log   /var/log/nginx/go.error.log error;               location / {                        proxy_cache cache_one;                        #proxy_cache_valid  200 304 301 302 2h;                        #proxy_cache_valid any 2h;                        #expires 1d;                        add_header X-Cache $upstream_cache_status;                        proxy_pass  http://go;                        proxy_cache_key    $uri$is_args$args;               }               location ~ /purge(/.*) {                   allow              127.0.0.1;                   allow              192.168.55.0/24;                   deny               all;                   proxy_cache_purge  cache_one $1$is_args$args;            }        }    }kind: ConfigMapmetadata:  creationTimestamp: "2020-08-01T12:19:48Z"  managedFields:  - apiVersion: v1    fieldsType: FieldsV1    fieldsV1:      f:data:        .: {}        f:nginx.conf: {}    manager: kubectl    operation: Update    time: "2020-08-01T12:19:48Z"  name: nginx-config  namespace: default  resourceVersion: "18116"  selfLink: /api/v1/namespaces/default/configmaps/nginx-config  uid: 2fb95961-a780-45ea-8db3-8ba85db1270d

基于目录创立
$ cat >game/game.properties <<EOF                                enemies=aliens   lives=3         enemies.cheat=true enemies.cheat.level=noGoodRottensecret.conde.passphrase=UUDDLRLRBABASsecret.code.allowed=truesecret.code.lives=30EOF$ cat >game/ui.properties <<EOF                                  color.good=purplecolor.bad=yellowallow.textmode=truehow.nice.to.look=fairlyNiceEOF$ ls -l game total 16-rw-r--r--  1 ca0gu0  staff  159  8  1 20:28 game.properties-rw-r--r--  1 ca0gu0  staff   83  8  1 20:28 ui.properties$  kubectl create configmap game-config --from-file=./gameconfigmap/game-config created$ kubectl get cmNAME             DATA   AGEgame-config      2      5snginx-config     1      9m6sspecial-config   2      14m$ kubectl get cm game-config -o yamlapiVersion: v1data:  game.properties: |    enemies=aliens    lives=3    enemies.cheat=true    enemies.cheat.level=noGoodRotten    secret.conde.passphrase=UUDDLRLRBABAS    secret.code.allowed=true    secret.code.lives=30  ui.properties: |    color.good=purple    color.bad=yellow    allow.textmode=true    how.nice.to.look=fairlyNicekind: ConfigMapmetadata:  creationTimestamp: "2020-08-01T12:28:49Z"  managedFields:  - apiVersion: v1    fieldsType: FieldsV1    fieldsV1:      f:data:        .: {}        f:game.properties: {}        f:ui.properties: {}    manager: kubectl    operation: Update    time: "2020-08-01T12:28:49Z"  name: game-config  namespace: default  resourceVersion: "18299"  selfLink: /api/v1/namespaces/default/configmaps/game-config  uid: d71c3f79-e5f4-4932-a83d-96e861788d54

Pod读取configmap配置的形式

  • 挂载到环境变量
  • 挂载到文件
尝试将configmap配置挂载到环境变量,通过变量名读取(valueFrom形式)