42·配置管理进阶

创建 ConfigMap

kubernetesconfigmapconfiguration

创建 ConfigMap

学习目标

  1. 掌握使用 kubectl 创建 ConfigMap 的方法
  2. 掌握使用 YAML 文件定义 ConfigMap
  3. 理解 ConfigMap 的数据格式

核心概念

创建方式

1. 命令行创建
   - kubectl create configmap
   - 适合快速测试

2. YAML 文件创建
   - 声明式定义
   - 适合生产环境

命令行创建方式

# 方式 1:从键值对创建
kubectl create configmap my-config \
  --from-literal=DATABASE_HOST=mysql.example.com \
  --from-literal=DATABASE_PORT=3306

# 方式 2:从文件创建
kubectl create configmap my-config \
  --from-file=config.properties

# 方式 3:从目录创建
kubectl create configmap my-config \
  --from-file=config/

# 方式 4:从文件指定键名
kubectl create configmap my-config \
  --from-file=app-config=config.properties

YAML 文件定义

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
  namespace: default
data:
  # 键值对形式
  DATABASE_HOST: mysql.example.com
  DATABASE_PORT: "3306"
  LOG_LEVEL: info
  # 文件形式
  config.properties: |
    database.host=mysql.example.com
    database.port=3306
    log.level=info

ConfigMap 数据结构

data:
  # 字符串值(不需要引号)
  key1: value1
  
  # 数字值(需要引号)
  key2: "123"
  
  # 多行文本
  key3: |
    line1
    line2
    line3
  
  # 文件内容
  config.file: |
    [section]
    key=value

查看 ConfigMap

# 查看所有 ConfigMap
kubectl get configmaps

# 查看特定 ConfigMap
kubectl get configmap my-config

# 查看详细信息
kubectl describe configmap my-config

# 查看 YAML 格式
kubectl get configmap my-config -o yaml

删除 ConfigMap

# 删除 ConfigMap
kubectl delete configmap my-config

实践练习

练习 1:命令行创建

创建一个 ConfigMap 存储数据库配置:

# 创建 ConfigMap
kubectl create configmap db-config \
  --from-literal=DB_HOST=mysql.example.com \
  --from-literal=DB_PORT=3306 \
  --from-literal=DB_NAME=mydb

# 验证创建
kubectl get configmap db-config
kubectl describe configmap db-config

练习 2:YAML 文件创建

创建一个配置文件 app-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_NAME: my-app
  APP_VERSION: "1.0.0"
  LOG_LEVEL: debug
  CACHE_SIZE: "1000"
  config.json: |
    {
      "database": {
        "host": "mysql.example.com",
        "port": 3306
      },
      "cache": {
        "size": 1000,
        "ttl": 300
      }
    }

应用配置:

kubectl apply -f app-config.yaml

练习 3:从文件创建

创建配置文件 nginx.conf

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://backend:8080;
    }
}

创建 ConfigMap:

kubectl create configmap nginx-config \
  --from-file=nginx.conf

小结

要点说明
命令行创建kubectl create configmap
YAML 创建声明式定义
数据格式键值对或文件内容
查看命令kubectl get/describe configmap
删除命令kubectl delete configmap

练习编辑器

bash
Loading...

继续学习

完成本课后,建议继续学习下一课「使用 ConfigMap」 以巩固所学知识。