作用:
    image.png

    就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性,因为一个configMap其实就是一系列配置信息的集合,将来可直接注入到Pod中的容器使用,而注入方式有两种

    一种将configMap做为存储卷

    一种是将configMap通过env中configMapKeyRef注入到容器中,configMap是KeyValve形式来保存数据的,如: name=zhangsan 或 nginx.conf=”http{server{…}}” 对于configMap的Value的长度是没有限制的,所以它可以是一整个配置文件的信息

    实验步骤:

    Step - 1:创建CM(配置资源共享存储中心)
    image.png
    先创建一个目录,用来专门存放有关configmap的配置

    “mkdir /opt/kubernetes-ConfigMap”

    image.png
    image.png
    image.png
    image.png
    首先我们要创建一个cm资源,然后声明式创建资源,并结合dashboard辅证,可以看到,configmap的配置信息,就是以key-vaule键值形式存在的

    “vim configmap-cm.yaml”

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: configmap
    namespace: storage #指定名称空间
    data:
    info: | #未来会被共享的配置信息
    username:admin
    password:123456

    “kubectl apply -f configmap-cm.yaml”

    “kubectl describe cm configmap -n storage”

    Step - 2:创建POD资源,并挂载指定CM
    image.png
    image.png
    image.png
    编辑configmap-pod资源,并与对应的cm对应起来,进行相互挂载

    “vim configmap-pod.yaml”

    apiVersion: v1
    kind: Pod
    metadata:
    name: configmap-pod
    namespace: storage #名称空间别对应错了
    spec:
    containers:
    - name: nginx
    image: nginx:latest
    volumeMounts: # 将configmap挂载到目录
    - name: config
    mountPath: /configmap/config
    volumes: # 引用configmap
    - name: config
    configMap:
    name: configmap

    “kubectl apply -f configmap-pod.yaml”

    image.png
    然后我们通过dashboard进入busybox命令行,可以看到路径已经生成,并成功拉取了CM上的配置信息

    Stsp - 3:效果验证
    image.png
    image.png
    此时我们尝试去修改一下CM资源里的配置信息,重新声明式创建资源,看看pod中的配置信息是否实现了更新

    image.png
    更新成功,但经我试验实测,并不是立即生效的