Kubernetes详解(四十四)——ConfigMap应用

今天继续给大家介绍Linux运维相关知识,本文主要内容是ConfigMap应用。
在上文Kubernetes详解(四十三)——ConfigMap创建中,我们介绍了ConfigMap的创建。今天,我们来介绍一下ConfigMap的应用。

一、环境变量方式应用

首先,我们来介绍一下ConfigMap的环境变量方式应用。我们先创建一个Pod,然后在Pod中调用ConfigMap中的内容作为自己的环境变量。Pod的资源清单如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-configmap
  namespace: default
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    env:
    - name: PORT
      valueFrom:
        configMapKeyRef:
          name: nginx-config1
          key: port
    - name: SERVERNAME
      valueFrom:
        configMapKeyRef:
          name: nginx-config1
          key: server_name

在该配置中,Pod的spec.env指定了两个环境变量,configMapKeyRef参数指定了该环境变量来源于ConfigMap,name指定了ConfigMap的名称,key指定;而该ConfigMap中的参数。
完成后的资源清单如下所示:
在这里插入图片描述
在完成资源清单的创建后,我们就可以执行该资源清单,创建Pod。执行命令:

kubectl apply -f pod-configmap.yaml

即可。该命令执行结果如下:
在这里插入图片描述
创建完Pod后,我们使用exec命令进入该Pod中的容器,然后查看容器中的环境变量,结果如下所示:
在这里插入图片描述
从上图中可以看出,我们的容器中有ConfigMap中配置的环境变量,我们的ConfigMap应用成功!

二、存储卷方式挂载

当然,除了使用环境变量外,我们还可以将ConfigMap中的内容直接作为存储卷挂载使用。
首先,我们先创建一个Pod,Pod的资源清单如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-configmap
  namespace: default
spec:
  containers:
  - name: pod-with-configmap-volume
    image: ikubernetes/myapp:v1
    volumeMounts:
    - name: nginx-conf
      mountPath: /etc/nginx/config.d/
      readOnly: true
  volumes:
  - name: nginx-conf
    configMap:
      name: nginx-config1

在上述配置中,我们的volume的类型是configMap,并且使用name参数指定了configMap的名称。配置完成后的资源清单如下所示:
在这里插入图片描述
之后,我们执行命令:

kubectl apply -f pod-with-configmap.yaml

创建Pod,并使用exec参数进入该Pod,查看挂载情况,结果如下所示:
在这里插入图片描述
从上图可以看出,我们的ConfigMap中的内容已经作为挂载处的参数可以被Pod使用了。
如果我们挂载的ConfigMap是一个文件,那么结果如下所示:
在这里插入图片描述
通过这种方式,我们就可以指定服务的配置文件,并通过ConfigMap来进行挂载了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124486456