zoukankan      html  css  js  c++  java
  • 【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 以数据卷的方式来使用。

    附录

  • 相关阅读:
    RDD弹性分布式数据集的基本操作
    spark-shell的Scala的一些方法详解
    浅谈架构
    关于MapReduce二次排序的一点解答
    mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程
    2018暑假总结
    暑假总结07
    2018暑假总结06
    2018暑假总结05
    2018暑假总结04
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14956945.html
Copyright © 2011-2022 走看看