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"
相关推荐
水淹萌龙3 小时前
k8s 中使用 Service 访问时NetworkPolicy不生效问题排查
云原生·容器·kubernetes
alden_ygq6 小时前
K8S cgroups详解
容器·贪心算法·kubernetes
旧故新长7 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
matrixlzp7 小时前
K8S Gateway AB测试、蓝绿发布、金丝雀(灰度)发布
kubernetes·gateway·ab测试
云攀登者-望正茂12 小时前
最大化效率和性能:AKS 中节点池的强大功能
云原生·容器·kubernetes
haven-85212 小时前
win11安装Joplin Server私有化部署(docker)
运维·docker·容器
QX_hao12 小时前
【docker】--数据卷挂载
docker·容器·eureka
文静小土豆13 小时前
在K8S集群中部署EFK日志收集
docker·容器·kubernetes
一个向上的运维者13 小时前
k8s的flannel生产实战与常见问题排查
云原生·容器·kubernetes
不之道13 小时前
通过 wsl 安装 docker
运维·docker·容器