Kubernetes资源对象之ConfigMap篇

目录

一、ConfigMap详解

二、创建ConfigMap方式

1、命令行创建Configmap

 2、指定文件创建Configmap

3、设当前所有文件为Configmap

4、指定目录创建configmap

5、通过yaml文件创建Configmap

三、通过环境变量使用Configmap

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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值