学习 Kubernetes(十三):ConfigMap

ConfigMap 是 Kubernetes 提供的用于保存非敏感字符型配置的资源。

定义

命令行

从文件创建 ConfigMap:

kubectl create configmap my-config --from-file=config.properties  

从目录创建 ConfigMap:

kubectl create configmap my-config --from-file=project/conf  

以字面量创建 ConfigMap:

kubectl create configmap my-config --from-literal=name=test  

YAML

定义 ConfigMap 配置文件:

apiVersion: v1  
kind: ConfigMap  
metadata:  
  name: my-config
data:  
  name: test
  content: |
    this is a test. 

使用 kubectl create 创建 ConfigMap:

kubectl create -f my-config.yml  

使用

在 Pod 中,可以以环境变量和 Volumn 两种方式使用 ConfigMap。

举🌰:

apiVersion: v1  
kind: Pod  
metadata:  
  name: my-pod
spec:  
  containers:
    - name: my-pod
      image: my-image
      env:
        - name: NAME
          valueFrom:
            configMapKeyRef:
              name: my-config
              key: name
      volumeMounts
        - mountPath: /app/conf
          name: app-conf
  volumes:
    - name: app-conf
      configMap:
        name: my-config
        items:
          - key: config.properties
            path: config.properties

上面的🌰中,环境变量 NAME 来自 ConfigMap 的 name,ConfigMap 文件 config.properties 装载到目录 /app/conf 下。

参考