Kubernetes资源对象--Configmap

configmap与secret类似,只是configmap用来处理不包含敏感信息的数据,用于Pod自定义配置。


1.创建Configmap

Configmap也有四种方式创建:

  • 通过--from-literal
    kubectl create configmap myconfigmap1 --from-literal=config1=123 --from-literal=config2=456
    一个--from-literal对应一个条目,查看如下:
[root@ceph1 kube-dashboard]# kubectl describe configmap myconfigmap1
Name:         myconfigmap1
Namespace:    default
Labels:       
Annotations:  

Data
====
config1:
----
123
config2:
----
456
Events:  
  • 通过--from-file
    kubectl create configmap myconfigmap2 --from-file=configmap1 --from-file=configmap2
  • 通过--from-env-file
    kubectl create configmap myconfigmap3 --from-env-file=configmap-env.txt
  • 通过yaml配置文件
kind: ConfigMap
metadata:
  name: myconfigmap4
data:
  config1: aaa
  config2: bbb

kubectl create -f myconfigmap4.yaml


2. 使用ConfigMap

ConfigMap也有两种方式使用:环境变量和Volume。

  • Volume方式
apiVersion: v1
kind: Pod
metadata:
  name: configmap-volume
spec:
  containers:
  - name: configmap-volume
    image: busybox
    args:
     - /bin/sh
     - -c
     - sleep 10; touch /tmp/test; sleep 30000
    volumeMounts:
    - name: configmap
      mountPath: /etc/configmap
      readOnly: true
  volumes:
  - name: configmap
    configMap:
      name: myconfigmap4
  • 环境变量的方式
apiVersion: v1
kind: Pod
metadata:
  name: configmap-env
spec:
  containers:
  - name: configmap-env
    image: busybox
    args:
     - /bin/sh
     - -c
     - sleep 10; touch /etc/configmap; sleep 30000
    env:
     - name: CONFIG1
       valueFrom:
         configMapKeyRef:
           name: myconfigmap4
           key: config1
       name: CONFIG2
       valueFrom:
         configMapKeyRef:
           name: myconfigmap4
           key: config2

普遍情况下,配置信息都是以文件形式存在,所以在创建configmap时候采用--from-file或者yaml文件比较多,使用configmap则是volume的方式居多。

你可能感兴趣的:(Kubernetes资源对象--Configmap)