Kubernetes之ConfigMap配置

Posted 爱上口袋的天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes之ConfigMap配置相关的知识,希望对你有一定的参考价值。

1、简介

ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。

核心用途就是容器和配置的分离解耦

        如启用一个redis容器,redis容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件redis.conf,存储数据可以用持久存储实现和容器的分离解耦,配置文件也能够实现和容器的分离解耦,也就是说redis容器能够直接读取并使用预先配置好的配置文件(而不是使用容器中默认自带的配置文件).这就是configMap的功能。

        ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMap 跟 secret 很类似,但它可以更方便地处理不包含敏感信息的字符串。


 2、案例之使用configMap挂载redis的配置信息

2.1、编写configmap.yaml文件,内容如下:

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: dev
data:
  redis.conf: | #这里是redis.conf中的内容
    appendonly yes

执行上面的yaml文件

[root@k8s-master ~]# kubectl apply -f configmap.yaml
namespace/dev created
configmap/configmap created
[root@k8s-master ~]#

 由上可以看到已经创建成功

 2.2、下面我们创建Deployment文件来定义redis相关信息,redis.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-redis
  namespace: dev
spec:
  replicas: 3
  selector:
    matchLabels:
      run: deploy-redis # 通过这里和下面的标签建立关系
  template:
    metadata:
      labels:
        run: deploy-redis  # 被选择
    spec:
      containers:
      - name: deploy-redis
        image: redis:6.2.6 # 直接拉取指定版本的redis镜像    
        command: # 这个是定义容器内部的启动命令
          - redis-server
          - "/redis-master/redis.conf"  # 指的是redis容器内部的位置
        ports:
        - containerPort: 6379
          protocol: TCP
        volumeMounts: # 下面定义了两个挂载
          - mountPath: /data
            name: data
          - mountPath: /redis-master
            name: config   
      volumes:
        - name: data
          emptyDir:  # 为data挂载一个空目录
        - name: config
          configMap: # 类型是configmap
            name: configmap # 名称是之前创建的configmap的名称
            items:
            - key: redis.conf # 这个key是上面configmap中data下定义的key值
              path: redis.conf # 这个是容器内部关联的文件名称              

执行redis.yaml文件:

kubectl apply -f redis.yaml

查看状态:

由上可知已经启动了

2.3、下面我们进入redis的容器查看我们的配置是否已经生效

 可以看到已经生效

以上是关于Kubernetes之ConfigMap配置的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes(k8s)之Configmap配置管理

Kubernetes之ConfigMap配置

21.Kubernetes之ConfigMap

Kubernetes 数据持久化之Configmap

Kubernetes之ConfigMap和Secret

Kubernetes进阶之secret及configmap配置管理