目录
1、创建一个pod.yaml文件
一、ConfigMap详解
ConfigMap与 Secret 类似,用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中。
ConfigMap 保存的是不需要加密的、应用所需的配置信息。
ConfigMap 的用法几乎与 Secret 完全相同:可以使用 kubectl create configmap 从文件或者目录创建 ConfigMap,也可以直接编写 ConfigMap 对象的 YAML 文件。
二、创建ConfigMap方式
创建ConfigMap的方式有4种:
命令行方式
方式1:通过直接在命令行中指定configmap参数创建,即--from-literal
方式2:通过指定文件创建,即将一个配置文件创建为一个ConfigMap,--from-file=<文件>
方式3:通过指定目录创建,即将一个目录下的所有配置文件创建为一个ConfigMap,--from-file=<目录>
配置文件方式
方式4:事先写好标准的configmap的yaml文件,然后kubectl create -f 创建
1、命令行创建Configmap
kubectl create configmap mysql --from-literal=user=roo
2、指定文件创建Configmap
kubectl create configmap nginx.yml --from-file=pod.yaml
[root@kube-master configmap]# ll
total 4
-rw-r--r-- 1 root root 175 Dec 23 00:22 pod.yaml
[root@kube-master configmap]# kubectl create configmap nginx.yml --from-file=pod.yaml
configmap/nginx.yml created
[root@kube-master configmap]#
3、设当前所有文件为Configmap
kubectl create configmap config --from-file=./
[root@kube-master ~]# cd kubernetes/
[root@kube-master kubernetes]# ll
total 24
-rw-r--r-- 1 root root 261 Dec 15 22:40 centos.yml
-rw-r--r-- 1 root root 129 Dec 16 01:46 configmap.yml
-rw-r--r-- 1 root root 648 Dec 16 01:30 nginx.conf
-rw-r--r-- 1 root root 179 Dec 15 07:37 ning.yml
-rw-r--r-- 1 root root 600 Dec 15 22:13 secret.yml
-rw-r--r-- 1 root root 470 Dec 15 03:33 test-env-pod.yml
[root@kube-master kubernetes]# kubectl create configmap kubernetes --from-file=./
configmap/kubernetes created
[root@kube-master kubernetes]#
4、指定目录创建configmap
kubectl create configmap etc --from-file=/etc
[root@kube-master ~]# kubectl create configmap etc --from-file=/etc
configmap/etc created
[root@kube-master ~]#
5、通过yaml文件创建Configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
data:
nginx.level: 1.16.2
nginx.info: | ###用竖杠代替 缩行俩格
你好
这是
configMap
nginx.conf: |
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
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"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2;
# listen [::]:443 ssl http2;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}
kubectl apply -f configmap.yaml
三、通过环境变量使用Configmap
1、创建一个pod.yaml文件
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
env:
- name: nginx.level
valueFrom:
configMapKeyRef:
name: nginx-config
key: nginx.level
使用pod.yaml文件
kubectl apply -f pod.yaml