• Kubernetes configMap(配置文件存储)


    Kubernetes configMap(配置文件存储)

    官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

    与Secret类似,区别在于ConfigMap保存的是不需要加密配置信息。
    应用场景:应用配置

    创建测试配置文件

    1、创建测试配置文件
    vim redis.properties

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

    2、通过命令创建引用配置文件

    kubectl create configmap redis-config --from-file=./redis.properties

    3、查看创建的配置文件
    kubectl get cm

    NAME DATA AGE
    redis-config 1 8s

    4、查看详细信息
    kubectl describe cm redis-config

    Name: redis-config
    Namespace: default
    Labels: <none>
    Annotations: <none>
    
    Data
    ====
    redis.properties:
    ----
    redis.host=127.0.0.1
    redis.port=6379
    redis.password=123456
    
    Events: <none>

    通过volume导入方式

    1、创建yaml文件
    vim 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

    2、创建容器

    kubectl create -f cm.yaml 

    3、查看结果
    kubectl logs mypod

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

    通过变量名方式

    1、创建yaml文件
    vim myconfig.yaml

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # 指定命名空间
      name: myconfig
      namespace: default
    # 指定level type
    data:
      # 指定变量 value则是配置文件的配置
      special.level: info
      special.type: hello

    2、创建容器

    kubectl create -f myconfig.yaml

    3、查看创建
    kubectl get cm

    NAME DATA AGE
    myconfig 2 23s
    redis-config 1 11m

    4、创建pod yaml
    vim 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:
                # 通过key加载配置文件
                configMapKeyRef:
                  # 使用的key
                  name: myconfig
                  key: special.level
            - name: TYPE
              valueFrom:
                configMapKeyRef:
                  # 使用的type
                  name: myconfig
                  key: special.type
      restartPolicy: Never

    5、查看验证
    kubectl logs mypod

    info hello
  • 相关阅读:
    go笔记 (异或交换两个数字变量需要注意的问题)
    java子线程中获取父线程的threadLocal中的值
    关于java线程池的线程废弃与存活条件分析
    .net实现上传图片到共享目录(远程服务器)
    .net 获取两个时间段中间的日期
    ASP .NET数据写入oracle数据库
    MySql定时插入数据
    Sitecore8.2 .net Solr搜索实现
    .net 盘古分词
    json_3层格式_数据源DataSet
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/11424321.html
Copyright © 2020-2023  润新知