关于kubernetes:KubernetesConfigmap使用创建与读取方式

Configmap

Configmap如何创立?

命令行创立
$ kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
configmap/special-config created

$ kubectl get cm
NAME             DATA   AGE
special-config   2      4s

$ kubectl get configmaps special-config -o yaml
apiVersion: v1
data:
  special.how: very
  special.type: charm
kind: ConfigMap
metadata:
  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.conf
configmap/nginx-config created
ca0gu0@ca0gu0deMBP configmap % kubectl get configmap nginx-config -o yaml   
apiVersion: v1
data:
  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: ConfigMap
metadata:
  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=noGoodRotten
secret.conde.passphrase=UUDDLRLRBABAS
secret.code.allowed=true
secret.code.lives=30
EOF

$ cat >game/ui.properties <<EOF                                  
color.good=purple
color.bad=yellow
allow.textmode=true
how.nice.to.look=fairlyNice
EOF

$ 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=./game
configmap/game-config created
$ kubectl get cm
NAME             DATA   AGE
game-config      2      5s
nginx-config     1      9m6s
special-config   2      14m
$ kubectl get cm game-config -o yaml
apiVersion: v1
data:
  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=fairlyNice
kind: ConfigMap
metadata:
  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形式)

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据