认识
2024年08月30日
一、认识
Kubernetes ConfigMap
是 Kubernetes
中一种用于管理配置数据的对象。它允许将配置与应用程序的容器化分开管理,从而提高应用程序的可移植性和灵活性。ConfigMap通常存储配置信息,例如配置文件、环境变量、命令行参数等。通过
ConfigMap,你可以以键值对的形式存储配置,并将其注入到
Pods` 中,作为环境变量、命令行参数或文件。它的主要用途是使应用的配置独立于应用程序代码,方便在不同环境中管理和更新。
二、语法
2.1 作为环境变量
ConfigMap
定义环境变量
apiVersion: v1
kind: ConfigMap
metadata:
name: config-map-data
namespace: default
data:
NAME: "bolawen"
AGE: "23"
Pod spec.env
配置引用 ConfigMap
数据
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: nginx
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: example-config
key: log-level
2.2 作为挂载文件
你有一个应用程序需要多个配置文件(如数据库配置、日志配置等)。你可以将这些文件存储为 ConfigMap
,并在 Pod
中挂载它们:
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
db-config.yaml: |
host: database.example.com
port: 5432
user: app_user
log-config.yaml: |
level: debug
path: /logs/app.log
在 Pod
中挂载这两个配置文件:
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
containers:
- name: app-container
image: my-app-image
volumeMounts:
- name: config-volume
mountPath: /etc/app/config
volumes:
- name: config-volume
configMap:
name: app-config # 挂载 ConfigMap 中的所有文件
这样,Pod
中的 /etc/app/config
目录会包含 db-config.yaml
和 log-config.yaml
配置文件,应用程序可以直接读取这些文件。