k8s-configMap

概念

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。

ConfigMap 将环境配置信息和容器镜像解耦,便于应用配置的修改,官网建议保存的数据大小不超过1MiB,超过1Mib的数据建议使用存储卷存储。

使用

四种方式来使用 ConfigMap 配置 Pod 中的容器:

  1. 在容器命令和参数内
  2. 容器的环境变量
  3. 在只读卷里面添加一个文件,让应用来读取
  4. 编写代码在 Pod 中运行,使用 Kubernetes API 来读取 ConfigMap

示例:

官网实例

创建ConfigMap

复制代码
apiVersion: v1
kind: ConfigMap
metadata:
  name: game-demo
  namespace: test
data:
  # 类属性键;每一个键都映射到一个简单的值
  player_initial_lives: "3"
  ui_properties_file_name: "user-interface.properties"

  # 类文件键
  game.properties: |
    enemy.types=aliens,monsters
    player.maximum-lives=5    
  user-interface.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true 

也可以通过命令指定将某个文件内同容写入ConfigMap

复制代码
#创建configMap帮助
kubectl create configmap  --help


#创建configMap
kubectl create configmap  <name> -n test --from-file=<fileName>

使用configMap

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: configmap-demo-pod
  namespace: test
spec:
  containers:
    - name: demo
      image: alpine
      command: ["sleep", "3600"]
      env:
        # 定义环境变量
        - name: PLAYER_INITIAL_LIVES # 请注意这里和 ConfigMap 中的键名是不一样的
          valueFrom:
            configMapKeyRef:
              name: game-demo           # 这个值来自 ConfigMap
              key: player_initial_lives # 需要取值的键
        - name: UI_PROPERTIES_FILE_NAME
          valueFrom:
            configMapKeyRef:
              name: game-demo
              key: ui_properties_file_name
      volumeMounts:
      - name: config
        mountPath: "/config"
        readOnly: true
  volumes:
  # 你可以在 Pod 级别设置卷,然后将其挂载到 Pod 内的容器中
  - name: config
    configMap:
      # 提供你想要挂载的 ConfigMap 的名字
      name: game-demo
      # 来自 ConfigMap 的一组键,将被创建为文件
      items:
      - key: "game.properties"
        path: "game.properties"
      - key: "user-interface.properties"
        path: "user-interface.properties"
相关推荐
小兔崽子去哪了18 分钟前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
laoli_coding1 小时前
系统部署之框架选型方案
微服务·云原生·架构
Zhu7582 小时前
在Docker环境部署ApacheGuacamole,对接PG数据库
数据库·docker·容器
少陽君3 小时前
Docker 部署 Loki + Promtail + Grafana 日志监控栈
docker·容器·grafana
独自归家的兔3 小时前
2026年7月2日 Docker 容器化部署 PaddleOCR-VL 实战(OpenAI 协议兼容 HTTP 调用)
运维·docker·容器
蜀道山老天师4 小时前
一文吃透 K8s:Deployment 滚动更新与版本回滚
云原生·容器·kubernetes
kylin-运维4 小时前
k8s可视化看板嵌入AI助手(悬浮对话球)
人工智能·容器·kubernetes·aicoding
会飞的土拨鼠呀5 小时前
Docker 容器维护手册
docker·容器·eureka
hhb_6185 小时前
云原生AI工作流分布式调度实战
人工智能·云原生
慕伏白5 小时前
【慕伏白】Docker 常用指令
docker·容器·eureka