• 【k8s】Volume-ConfigMap


    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-RC1

    目标

    前面学习了将 ConfigMap 当作环境变量写入到 Pod 中,其实 ConfigMap 可以当作数据卷使用。

    示例

    创建简单键值对 cm

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cm-simple
    data:
      name: jiangbo
      age: "4444"
    

    绑定到 Pod

    apiVersion: v1
    kind: Pod
    metadata:
      name: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          image: jiangbo920827/spring-k8s:liveness
          volumeMounts:
            - mountPath: /opt/cfg
              name: v1
          ports:
            - containerPort: 8080
      volumes:
        - name: v1
          configMap:
            name: cm-simple
    

    查看

    [root@master ~]# kubectl exec spring-k8s -- sh -c "ls -l /opt/cfg"
    total 0
    lrwxrwxrwx    1 root     root            10 May 16 05:39 age -> ..data/age
    lrwxrwxrwx    1 root     root            11 May 16 05:39 name -> ..data/name
    [root@master ~]# kubectl exec spring-k8s -- sh -c "cat  /opt/cfg/name"
    jiangbo[root@master ~]# kubectl exec spring-k8s -- sh -c "cat  /opt/cfg/name;echo"
    jiangbo
    [root@master ~]#
    

    普通键值对类型的 cm 会以文件的方式挂载到定义的目录下,其中文件名是定义的 key,而文件内容是 value。

    修改 cm

    [root@master ~]# kubectl get cm cm-simple -o yaml |sed 's/jiangbo/k8s/g' | kubectl apply -f -
    configmap/cm-simple configured
    [root@master ~]# kubectl exec spring-k8s -- sh -c "cat  /opt/cfg/name;echo"
    k8s
    

    如果看到文件中的内容没有变化,需要多等一会才会生效。如果修改了 cm 中的值,使用数据卷的方式,会自动更新。

    总结

    学习了使用 ConfigMap 以数据卷的方式来使用。

    附录

  • 相关阅读:
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
    检测到有潜在危险的 Request.Form 值
    jQuery校验
    C#客户端的异步操作
    泛型(一)
    c#面试题汇总
    多线程(下)
    多线程(上)
    线程篇(二)
    线程篇(一)
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14956945.html
Copyright © 2020-2023  润新知