• Kubernetes(K8S) 配置管理-ConfigMap 介绍


    作用:存储不加密数据到 etcd,让 Pod 以变量或者 Volume 挂载到容器中
    场景:配置文件

    创建配置文件

    redis.properties

    redis.host=127.0.0.1
    redis.port=6379
    redis.password=123456
    

    创建 ConfigMap

    # 根据 redis.properties 创建 redis-config 
    [root@k8smaster ~]# kubectl create configmap redis-config --from-file=redis.properties
    # 查看 configmap
    [root@k8smaster ~]# kubectl get cm
    # 查看 redis-config 的详情
    [root@k8smaster ~]# kubectl describe cm redis-config
    

    以 Volume 的形式进行挂载到 pod 容器中

    cm.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: mypod
    spec:
      containers:
        - name: busybox
          image: busybox
          command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
          volumeMounts:
          - name: config-volume
            mountPath: /etc/config
      volumes:
        - name: config-volume
          configMap:
            name: redis-config
      restartPolicy: Never
    
    # 创建 yaml文件
    [root@k8smaster ~]# vi cm.yaml
    # 创建pod
    [root@k8smaster ~]# kubectl apply -f cm.yaml
    # 启动后可以查看日志
    [root@k8smaster ~]# kubectl logs mypod
    

    以变量的形式进行挂载

    创建 yaml,声明变量信息 configmap 创建
    myconfig.yaml

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: myconfig
      namespace: default
    data:
      special.level: info
      special.type: hello 
    

    config-var.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: mypod
    spec:
      containers:
        - name: busybox
          image: busybox
          command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]
          env:
            - name: LEVEL
              valueFrom:
                configMapKeyRef:
                  name: myconfig
                  key: special.level
            - name: TYPE
              valueFrom:
                configMapKeyRef:
                  name: myconfig
                  key: special.type
      restartPolicy: Never
    
    [root@k8smaster ~]# vi myconfig.yaml
    [root@k8smaster ~]# kubectl apply -f myconfig.yaml
    # 以变量形式进行挂载
    [root@k8smaster ~]# vi config-var.yaml
    [root@k8smaster ~]# kubectl apply -f config-var.yaml
    
  • 相关阅读:
    前端将图片储存table表格中,页面回显
    Docker原理
    Pytorch(二) —— 激活函数、损失函数及其梯度
    2022年高教社杯国赛赛题浅评
    Linux 应用---make及makefile的编写
    (Network)私有IP地址
    为什么我推荐你使用 systemd timer 替代 cronjob?
    vue2入门--->非单文件组件(html直接使用组件)
    如何实现前端音频和视频播放?
    【数据结构】树与森林
  • 原文地址:https://www.cnblogs.com/vipsoft/p/16931288.html