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形式)