简介:

启动pod,pod启动时可以将configMap资源关联到当前pod上来,从中读一个数据c传递给pod内的容器的一个变量。任然是变量注入的方式来给容器传配置信息。

把每一个configMap当一个存储卷,直接挂在到容器的某个目录上,这个目录恰好是运行程序读取配置信息的文件路径。支持动态修改的,如果configMap配置信息改变了,通知所有pod中应用重载。是通过明文传数据的,安全性不高。

sercet与configMap的功能相似,但是传递数据是 通过base64编码机制。

配置容器化应用的方式: 1.通过自定义命令行参数来实现   args:[]

           2.把配置文件直接写入镜像  (实现太单一,耦合度太紧密)

              3.环境变量  (1) Cloud Native的应用程序一般可以直接通过环境变量加载配置

                (2) 通过entrypoint脚本来预处理变量为配置文件中的配置信息

           4.存储卷

           5.configMap的核心作用让配置信息和镜像文件解耦,镜像可以做成骨架,配置信息可以通过configMap注入,使得一个镜像文件可以应付多个不同配置信息,为应  用程序运行不同配置的环境而工作。在configMap中所有数据都保存键值格式。

一、创建configMap

kubectl create configmap nginx-config --from-literal=nginx_port=9999 --from-literal=server_name=www.yiruiduan.com 通过命令行设置键值

查看configMap的描述

kubectl create configmap nginx-yiruiduan --from-file=./yiruiduan.conf 通过加载文件 文件名就是键,文件内容就是值

查看描述

在pod中应用有两种方式加载环境变量或者volume挂载:

1)通过env加载的方式,注入配置信息。只有在启动pod的时候生效

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: pod-cm-
  5. namespace: default
  6. labels:
  7. app: myapp
  8. tier: frontend
  9. annotations:
  10. create_by: yiruiduan
  11. spec:
  12. containers:
  13. - name: myapp
  14. image: ikubernetes/myapp:v1
  15. ports:
  16. - name: http
  17. containerPort:
  18. - name: https
  19. containerPort:
  20. env:
  21. - name: NGINX_SERVER_PORT
  22. valueFrom:
  23. configMapKeyRef:
  24. name: nginx-config
  25. key: nginx_port
  26. - name: NGINX_SERVER_NAME
  27. valueFrom:
  28. configMapKeyRef:
  29. name: nginx-config
  30. key: server_name

2)通过volume挂载的方式,动态配置信息

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: pod-cm-
  5. namespace: default
  6. labels:
  7. app: myapp
  8. tier: frontend
  9. annotations:
  10. create_by: yiruiduan
  11. spec:
  12. containers:
  13. - name: myapp
  14. image: ikubernetes/myapp:v1
  15. ports:
  16. - name: http
  17. containerPort:
  18. - name: https
  19. containerPort:
  20. volumeMounts:
  21. - name: nginxconf
  22. mountPath: /etc/nginx/conf.d/
  23. readOnly: true
  24. volumes:
  25. - name: nginxconf
  26. configMap:
  27. name: nginx-yiruiduan

二、创建secret

kubectl create secret generic mysql-root-password --from-literal=password=yiruiduan 通过命令行的方式创建

使用的范式和configMap的使用方式一样可以通过env注入,也可以通过volume挂载方式。它将数据通过base64的编码。不易被人看懂

kubernetes 的configMap和sercet配置信息的更多相关文章

  1. k8s通过configmap管理应用配置信息

    Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap. ConfigMap 的创建和使用方式与 Secret 非常类 ...

  2. 012.Kubernetes的configmap和secret配置

    使用configmap对多有的配置文件进行统一管理 一 configmap配置管理 1.1 检查mysql的配置 [root@docker-server1 storage]# kubectl get ...

  3. Springboot整合Spring Cloud Kubernetes读取ConfigMap,支持自动刷新配置

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 之前介绍了Spring Cloud Config的用法,但 ...

  4. k8s实战为aspnetcore.webapi微服务注入配置信息 - kubernetes

    1.浅析k8s配置信息 Secret 以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens.私钥.密码.数据库连接.事件总线连接等. ConfigMap 以明文的形式存储数据 ...

  5. 35 【kubernetes】configMap

    kubernetes可以驱动容器的运行,并且把容器的运行放置在kubernetes定义的体系结构中pods这一级. 但是容器运行通常会需要某些参数,比如环境变量或者硬件使用情况. 为了解决对每个con ...

  6. Kubernetes的ConfigMap解析

    ConfigMap功能在Kubernetes1.2版本的时候就有了,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.这些配置信息需要与docker image解耦,你总不能每修改一个配置 ...

  7. 如何使用Kubernetes的configmap通过环境变量注入到pod里

    在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念. ht ...

  8. K8S学习笔记之Kubernetes 配置管理 ConfigMap

    0x00 概述 很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配置文件呢,那我们就需要用 ...

  9. Kubernetes 配置管理 ConfigMap(十二)

    目录 一.背景 二.创建 ConfigMap 2.1.通过 --from-literal 2.2.通过 --from-file 2.3.通过--from-env-file 2.4.YAML 配置文件 ...

随机推荐

  1. java怎么解除文件占用(Dom4j操作完xml后怎么关流)

    一.背景 项目中要解析xml,由于Dom4j的诸多优点,我就用Dom4j解析xml,代码如下: public void readXML() { SAXReader reader = new SAXRe ...

  2. mybatis generator代码生成器的使用

    一.有关mybatis generator的使用可以查看如下网址:http://www.mybatis.org/generator/index.html 二.如下是我自己整理的学习步骤: <1& ...

  3. 【fiddler】Fiddller的应用

    一.fiddler抓取移动端接口 1.获取PC端IP 2.手机ip设置为与电脑同一局域网ip并配置代理 1)手机ip地址与pc地址连接同一局域网网络 2)代理设置为手动,主机名为PCip,端口号为88 ...

  4. const成员函数和const对象

    从成员函数说起 在说const成员函数之前,先说一下普通成员函数,其实每个成员函数都有一个隐形的入参:T *const this. int getValue(T *const this) { retu ...

  5. 第一章 Django之MVC模式(2)

    让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过 Web 框架来实现的功能与之前的方式有何不同.下面就是通过使用 Django 来完成以上功能的例子: # models.py (the da ...

  6. 英语是学习Java编程的基础吗

    就当前市场行情需求来看,Java人才需求依旧火爆,在如今互联网时代,手机移动端的软件开发是非常重要的,如今无论是大中小企业都是需要进行软件的开发的,又因为Java是开源的使用起来可以节约一大批的成本, ...

  7. 网络编程实现简单的ssh

    客户端:客户端实例  --->  建立连接 ----> 发送内容 ---> 接受内容. import socket client = socket.socket() client.c ...

  8. Hadoop_30_MapReduce_多job串联

    一个稍复杂点的处理逻辑往往需要多个mapreduce程序串联处理,多job的串联可以借助mapreduce框架的JobControl实现 示例代码:  每个job装配完成才可以进行下面代码: Cont ...

  9. Spring 注解无效 空指针异常

    对于Java开发,现在Spring已成为一种生态,使用Spring成为一种享受,Spring的使用让开发变得更加便捷. 而Spring好用归好用,若不清楚里面的工作原理,使用的时候难免会踩到一些坑. ...

  10. Logstash工作原理

    Logstash事件处理有三个阶段:inputs → filters → outputs.是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛 ...