美文网首页K8skubernetes
508.【kubernetes】ConfigMap: 在 Pod

508.【kubernetes】ConfigMap: 在 Pod

作者: 七镜 | 来源:发表于2022-12-04 04:55 被阅读0次

一、创建并启动 ConfigMap

  1. 方法一:
[root@k8s0 test_config_map]# cat >cm-qijing.yaml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
  name: cm-qijing
data:
  key-qijing-file.txt: |
    from key-qijing-file.txt
    hello qijing

EOF
  1. 方法二:
[root@k8s0 test_config_map]# cat >key-qijing-file.txt <<EOF
from key-qijing-file.txt
hello qijing
EOF
[root@k8s0 test_config_map]# kubectl create cm cm-qijing --from-file=./key-qijing-file.txt 
configmap/cm-qijing created
  • 两种方式的结果都是一样的

二、挂载ConfigMap中的文件,创建并启动 Pod

[root@k8s0 test_config_map]# cat test-cm-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: cm-test-pod
spec:
  containers:
  - name: cm-test
    image: busybox
    command: ["ls", "-l", "/tmp"]
    volumeMounts:
    - name: example
      mountPath: /tmp/key-qijing-file.txt
      subPath: key-qijing-file.txt
  volumes:
  - name: example
    configMap:
      name: cm-qijing
      items:
      - key: key-qijing-file.txt
        path: key-qijing-file.txt
  restartPolicy: Never
[root@k8s0 test_config_map]# kubectl create -f test-cm-pod.yaml 
pod/cm-test-pod created
[root@k8s0 test_config_map]# kubectl get po
NAME          READY   STATUS              RESTARTS   AGE
cm-test-pod   0/1     ContainerCreating   0          3s
[root@k8s0 test_config_map]# kubectl get po
NAME          READY   STATUS      RESTARTS   AGE
cm-test-pod   0/1     Completed   0          4s
[root@k8s0 test_config_map]# kubectl get po
NAME          READY   STATUS      RESTARTS   AGE
cloudwavedb   1/1     Running     0          38m
cm-test-pod   0/1     Completed   0          4s
[root@k8s0 test_config_map]# kubectl logs -f cm-test-pod
total 4
-rw-r--r--    1 root     root            38 Nov 27 03:59 key-qijing-file.txt
  • 可以看到在容器内部已经能看到通过 ConfigMap 挂载的文件了。这个ConfigMap也是一个应用程序的配置文件解决方案。

三、使用 ConfigMap 的限制条件

  • ConfigMap 必须在 Pod 之前创建,Pod 才能引用它。
  • 如果 Pod 使用 envFrom 基于 ConfigMap 定义环境变量,则无效的变量名称将被忽略,并在事件中被记录为 InvalidVariableNames。
  • ConfigMap 受命名空间限制,只有处于相同命名空间中的 Pod 才可以引用它。
  • ConfigMap 无法用于静态 Pod。

相关文章

  • 508.【kubernetes】ConfigMap: 在 Pod

    一、创建并启动 ConfigMap 方法一: 方法二: 两种方式的结果都是一样的 二、挂载ConfigMap中的文...

  • Kubernetes configmap

    ConfigMap 更新后滚动更新 Pod 往往在使用kubernetes configmap作为业务的配置管理时...

  • Kyverno外部数据源

    在 Kyverno 策略中使用来自 ConfigMap、Kubernetes API Server和 image ...

  • secret

    secret ConfigMap 和 secretPod中容器提供配置信息配置中心Pod加载ConfigMap 资...

  • Kubernetes学习之pod

    Pod简介 Pod是kubernetes集群能够调度的最小单元。Pod是容器的封装 。在Kubernetes集群中...

  • Kubernetes 配置Pod和容器(十二)configmap

    很多应用程序需要一些配置通过组合的配置文件,命令行参数和环境变量。这些配置应该与镜像内容分离以保持容器化应用程序的...

  • kubernetes Pod的配置管理-ConfigMap

    背景 应用打包为容器镜像后,可以通过环境变量或者外挂文件的方式在创建容器时进行配置注入,但在大规模容器集群的环境中...

  • springboot2.X使用k8s的configmap

    需求 处于项目需要使用kubernetes 的configmap作为配置中心。 环境 kubernetes : 1...

  • kubernetes ConfigMap

    1 概述 其他容器编排调度工具会大谈特谈“轻应用”、“十二要素应用”,这样就势必会对企业级复杂应用做很大的改动。K...

  • Kubernetes ConfigMap

    概述 ConfigMap 是用来存储配置文件的 Kubernetes 资源对象,所有的配置内容都存储在 etcd ...

网友评论

    本文标题:508.【kubernetes】ConfigMap: 在 Pod

    本文链接:https://www.haomeiwen.com/subject/nwqcfdtx.html