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"
相关推荐
Serverless社区9 小时前
函数计算的云上计费演进:从请求驱动到价值驱动,助力企业走向 AI 时代
阿里云·云原生·serverless
资源开发与学习1 天前
Kubernetes集群核心概念 Service
kubernetes
阿里云云原生1 天前
【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!
云原生
容器魔方1 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
muyun28002 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
Nazi62 天前
k8s的dashboard
云原生·容器·kubernetes
傻傻虎虎2 天前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊2 天前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
AKAMAI2 天前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
ajax_beijing2 天前
zookeeper是啥
分布式·zookeeper·云原生