kubernetes 的configMap和sercet配置信息
简介:
启动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的时候生效
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-
namespace: default
labels:
app: myapp
tier: frontend
annotations:
create_by: yiruiduan
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
- name: https
containerPort:
env:
- name: NGINX_SERVER_PORT
valueFrom:
configMapKeyRef:
name: nginx-config
key: nginx_port
- name: NGINX_SERVER_NAME
valueFrom:
configMapKeyRef:
name: nginx-config
key: server_name
2)通过volume挂载的方式,动态配置信息
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-
namespace: default
labels:
app: myapp
tier: frontend
annotations:
create_by: yiruiduan
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
- name: https
containerPort:
volumeMounts:
- name: nginxconf
mountPath: /etc/nginx/conf.d/
readOnly: true
volumes:
- name: nginxconf
configMap:
name: nginx-yiruiduan
二、创建secret
kubectl create secret generic mysql-root-password --from-literal=password=yiruiduan 通过命令行的方式创建

使用的范式和configMap的使用方式一样可以通过env注入,也可以通过volume挂载方式。它将数据通过base64的编码。不易被人看懂
kubernetes 的configMap和sercet配置信息的更多相关文章
- k8s通过configmap管理应用配置信息
Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap. ConfigMap 的创建和使用方式与 Secret 非常类 ...
- 012.Kubernetes的configmap和secret配置
使用configmap对多有的配置文件进行统一管理 一 configmap配置管理 1.1 检查mysql的配置 [root@docker-server1 storage]# kubectl get ...
- Springboot整合Spring Cloud Kubernetes读取ConfigMap,支持自动刷新配置
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 之前介绍了Spring Cloud Config的用法,但 ...
- k8s实战为aspnetcore.webapi微服务注入配置信息 - kubernetes
1.浅析k8s配置信息 Secret 以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens.私钥.密码.数据库连接.事件总线连接等. ConfigMap 以明文的形式存储数据 ...
- 35 【kubernetes】configMap
kubernetes可以驱动容器的运行,并且把容器的运行放置在kubernetes定义的体系结构中pods这一级. 但是容器运行通常会需要某些参数,比如环境变量或者硬件使用情况. 为了解决对每个con ...
- Kubernetes的ConfigMap解析
ConfigMap功能在Kubernetes1.2版本的时候就有了,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.这些配置信息需要与docker image解耦,你总不能每修改一个配置 ...
- 如何使用Kubernetes的configmap通过环境变量注入到pod里
在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念. ht ...
- K8S学习笔记之Kubernetes 配置管理 ConfigMap
0x00 概述 很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配置文件呢,那我们就需要用 ...
- Kubernetes 配置管理 ConfigMap(十二)
目录 一.背景 二.创建 ConfigMap 2.1.通过 --from-literal 2.2.通过 --from-file 2.3.通过--from-env-file 2.4.YAML 配置文件 ...
随机推荐
- Till I Collapse CodeForces - 786C (主席树区间加,二分最小值)
大意: 给定序列, 将序列划分为若干段, 使得每段不同数字不超过k, 分别求出k=1...n时的答案. 考虑贪心, 对于某个k 从1开始, 每次查询最后一个颜色数<=k的点作为一个划分, 直到全 ...
- Scala学习十七——类型参数
一.本章要点 类.特质.方法和函数都可以有类型参数 将类型参数放置在名称之后,以方括号括起来 类型界定的语法为T<:UpperBound.T>:LowerBound.T<%ViewB ...
- Css文字在div中自动换行
Css文字在div中自动换行 word-break:break-all; 文字在div中字段换行
- c#连接数据库SqlHelper报错
这是一个困扰了我好几天的问题,首先看一下报错信息 代码: private static string connectionString = ConfigurationManager.Connectio ...
- Java实现发邮件功能---网易邮箱
目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...
- 03 - Mongodb数据查询 | Mongodb
1.基本查询 ①方法find():查询 db.集合名称.find({条件文档}) ②方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) ③方法pretty(): ...
- List集合复制
方法一: public static void main(String[] args) { // TODO Auto-generated method stub List<String> ...
- TP5 用cron实现linux定时任务
TP5 用cron实现linux定时任务 1) tp5的控制器内容: namespace app\test\controller; use think\Controller; use think\fa ...
- functools.lru_cache装饰器
functools.lru_cache装饰器 functools.lru_cache是非常实用的装饰器,他实现了备忘功能它把耗时的函数的结果保存起来,避免传入相同的参数时重复计算.LRU是Least ...
- Django_04_视图
视图 后台管理页面做好了,接下来就要做公共访问的页面了 对于django的设计框架MVT,用户在URL中请求的是视图,视图接收请求后进行处理,并将处理的结果返回给请求者 使用视图时需要进行两步操作 1 ...