栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

07-Kubernetes中的ConfigMap

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

07-Kubernetes中的ConfigMap

在 Kubernetes 中,挂载目录可以用 PV&PVC,但挂载配置文件,比如挂载 Redis、RabbitMQ等中间件的配置文件,却是推荐使用 ConfigMap(配置集)。

使用 ConfigMap 主要有两个步骤:

  • 将原有的配置文件,创建为配置集
  • 引用配置集进行使用

下面以 Redis 为例,进行实践。

1. 创建配置集

方式一:使用命令行方式

# 创建配置,redis保存到k8s的etcd;
kubectl create cm redis-conf-map --from-file=redis.conf

方式二:使用yaml文件方式

(1)新建一个 redis-config.yaml 文件,内容如下

apiVersion: v1
data:    #data是所有真正的数据,key:默认是文件名   value:配置文件的内容
  redis.conf: |
    appendonly yes
kind: ConfigMap
metadata:
  name: redis-conf-map
  namespace: default

(2)应用上面的文件

kubectl apply -f redis-config.yaml

(3)查看结果

kubectl get cm
2. 创建 Pod

(1)新建一个 redis-pod.yaml 文件,内容如下

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: redis
    command:
      - redis-server
      - "/redis-master/redis.conf"  #指的是redis容器内部的位置
    ports:
    - containerPort: 6379
    volumeMounts:
    - mountPath: /data # Pod内部要挂载的目录
      name: data
    - mountPath: /redis-master 
      name: config  # 映射到volumes下面的 name
  volumes:
    - name: data
      emptyDir: {} # k8s自动分配目录
    - name: config
      configMap: # 配置集方式
        name: redis-conf-map # 通过名称查找对应配置集
        items:
        - key: redis.conf
          path: redis.conf # 映射到Pod里面的/redis-master/redis.conf文件

(2)应用一下

kubectl apply -f redis-pod.yaml

(3)查看创建结果

kubectl get pod
3. 测试一下

(1)在 master 结点,更改配置文件

# 查看cm信息
kubectl get cm
# 更改cm信息,往里面加入新的配置信息,并保存退出
kubectl edit cm redis-conf-map

(2)进入到对应的 Redis 的 Pod 内部,查看是否将变更信息更新到配置文件中

cd /redis-master/

cat redis.conf

(3)如果配置文件中有变更信息,证明成功。

总结:修改了 ConfigMap,Pod 里面的配置文件也会跟着变更;但如果配置文件没有生效,则需要重启 Pod,以应用到最新的配置文件信息。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号