• K8S基础学习ConfigMap(引入环境变量和引入配置文件)


    应用部署的一个最佳实践是将应用所需的配置信息与程序进行分离。在K8S中提供了这种统一的集群配置管理方案--ConfigMap。 类似于集成了环境配置清单。生成相应的应用时在yaml中引入该ConfigMap。起到统一分配配置信息的作用。

    ConfigMap以一个或多个key:value的形式保存在文件中。

    即可以通过yaml文件创建也可以通过kubectl命令行创建。

    本人习惯于yaml,下面以yaml方式为例做ConfigMap实验。

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: cm-appvars
    data:
    apploglevel: info
    appdatadir: /var/data

    生成ConfigMap: kubectl create -f cm-appvars.yaml

    生成后可以通过kubectl get configmap和describe 观察现象。

    之后我们创建一个POD,将ConfigMap中两个环境变量引入POD并显示。

    kubectl create -f 生成pod。pod执行后会退出并且不自动重启。

    通过kubectl logs cm-test-pod可以看到:

    APPDATADIR=/var/data
    APPLOGLEVEL=info。

    pod成功引入ConfigMap。

    接下来来实验另一种模式:volumeMount。原理是ConfigMap中包含了KEY:文件内容,再通过pod配置将ConfigMap内容生成文件保存在pod中,同时需要挂载相应的文件夹。

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: cm-serverxml
    data:
    key-serverxml: “123456”
    key-loggingproperties: “1234567”

    生成ConfigMap:kubectl create -f cm-appconfigfiles.yaml

    在Pod“cm-test-app”的定义中,将ConfigMap“cm-appconfigfiles”中的内容以文件的形式mount到容器内部的/configfiles目录中去。

    备注:上面的ConfigMap中name选项指的是你ConfigMap中matedata的name,不是文件名。

    而后生成pod。

    进入pod: kubectl exec -ti cm-test-app -- bash

    cd /configfiles/可查看到configmap里的文件内容已经生成了相应的文件。配置文件注入成功。

    以下注意事项:

  • 相关阅读:
    12
    Kafka设计解析(二)- Kafka High Availability (上)
    Apache kafka 工作原理介绍
    Kafka设计解析(一)- Kafka背景及架构介绍
    【转载】MySQL之权限管理
    【转载】漫谈HADOOP HDFS BALANCER
    【转载】HDFS 上传文件不均衡和Balancer太慢的问题
    【转载】mysql binlog日志自动清理及手动删除
    【转】Typora极简教程
    更新Linux服务器时间
  • 原文地址:https://www.cnblogs.com/normanlin/p/10628144.html
Copyright © 2020-2023  润新知