kubernetes Configmap secret的使用
kubernetes configmap 核心作用是让配置信息和镜像解耦,pod可以使用configmap的数据生成配置文件。如果后端的pod配置文件要改变时,只需要更改下configmap里面的数据,让后会动态的改变pod容器里面的配置信息。
configmap的数据是以键值的形式
configMap 的使用
第一步:创建configmap
kubectl create configmap nginx-conf --from-literal=NGINX_PORT=8080 --from-literal=SERVER_NAME=dingbin
这里创建了2个数据,一个是NGINX_PORT=8080,一个是SERVER_NAME=dingbin

显示创建的configmap
pod如何引用configmap的数据,第一种是通过环境变量的方式来引用。看下面的yaml文件
apiVersion: v1
kind: Pod
metadata:
name: pod-cm
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp-cm
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
env: #这里开始是引用configmap
- name: Nginx_PORT
valueFrom:
configMapKeyRef:
name: nginx-conf #这个是刚刚创建的configmap的名字
key: NGINX_PORT #这是configmap里面数据的键
- name: NGINX_SERVERNAME
valueFrom:
configMapKeyRef:
name: nginx-conf
key: SERVER_NAME
创建上面的pod,

这种就是pod通过env来引用configmap里面的数据
第二种方法是pod把configmap当作存储卷来挂载的方式
新建一个nginx的虚拟主机的配置文件 vim nginx-server.conf

重新创建一个configmap ,这次是直接把这个文件当作键的值
kubectl create configmap nginx-server --from-file=./nginx-server.conf

pod 通过挂载的方式来引用configmap,yaml文件
apiVersion: v1
kind: Pod
metadata:
name: pod-cm2
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp-cm
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
volumeMounts: #这里挂载
- name: html 挂载的卷名
mountPath: /etc/nginx/conf.d/ #挂载在容器的路径
readOnly: true
volumes: #定义卷
- name: html #卷的名字
configMap: 类型是configMap
name: nginx-server 这里是刚创建configmap的名字
创建pod

在容器中创建 /data/web/html ,新建一个index.html
随便找一个节点,添加一个hosts解析


如果配置发生变化,只需要更改configmap里的数据,会自动更新pod容易里面的配置文件,如下


上图是容器里面的配置文件。

注意,容器的配置文件是更改了,但是还是需要重新reload下nginx,否则nginx监听的端口是没有改变的
kubernetes secret 和configmap很像,不同的是secret是数据是私密的数据,会加密成base64的格式,比如一般密码,私钥等要用secret

secret由三种类型,第一种是docker-registry 是专门给docker使用的,第二种是generic是通用型,比如你要存储密码可以使用,第三种是证书的私钥使用的
创建个generic的测试下效果:

创建好了,至于引用的方式和configmap一样,可以是env的方式,也可以是挂载的方式,
apiVersion: v1
kind: Pod
metadata:
name: pod-secret
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp-secret1
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort:
env:
- name: MYSQL_PASSWOED
valueFrom:
secretKeyRef:
name: mysql-password #secret的名字
key: password #secret数据的键

以上是configmap和secret的使用,不足之处希望大家可以指出!
kubernetes Configmap secret的使用的更多相关文章
- Kubernetes configMap(配置文件存储)
Kubernetes configMap(配置文件存储) 官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure ...
- k8s配置中心-configmap,Secret密码
目录 k8s配置中心-configmap,Secret 创建ConfigMap 使用ConfigMap subPath参数 Secret 官方文档 编写secret清单 使用secret 在 Pod ...
- kubernetes ConfigMap和Secret:配置应用程序
7.1.配置容器化应用程序 7.2.向容器传递命令行参数 7.2.1.待Docker中定义命令与参数 1.了解ENTRYPOINT与CMD ENTRYPOINT定义容器启动时被调用的可以执行程序 CM ...
- (十)Kubernetes ConfigMap和Secret
ConfigMap资源 介绍 ConfigMap是让配置文件从镜像中解耦,让镜像的可移植性和可复制性.许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.这些配置信息需要与docker im ...
- 09-kubernetes configMap secret
目录 配置容器化应用配置的方式 命令创建和测试configMap 创建一个Pod 挂在测试 命令行文件类创建方式 创建Pod测试 创建后测试 贴近实际进行测试 创建后测试 secret 举例测试 ge ...
- kubernetes之secret
Secret解决了密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中.Secret可以以Volume或者环境变量的方式使用. Secret类型: Opa ...
- Kubernetes ConfigMap详解,多种方式创建、多种方式使用
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 配置是程序绕不开的话题,在Kubernetes中使用ConfigMap来配置,它本质其实就是键值对.本文讲解如何 ...
- Kubernetes的Secret对象的使用
Secret可以想要访问的加密数据,存放到Etcd中,Pod可以通过的Volume的方式,访问到Secret保存的信息 ,当数据修改的时候,Pod挂载的Secret文件也会被修改 一.创建Secret ...
- Kubernetes ConfigMap热更新
ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中. 总结 更新 ConfigMap 后: 使用该 ConfigMap 挂载的 Env 不会同步更新 ...
随机推荐
- 回炉重铸系列之javaEE基础
这篇文章主要介绍 servlet filter listener interceptor 之 知识点.博文主要从 概念,生命周期,使命介绍其区别.详情如下: 概念 生命周期 使命 servlet ...
- QT 打包exe
QT打包主要方法: 1.把无措的代码进行Release编译 2.在运行完后,找到运行后生成的目录,以下是我的文件,名为result,运行类型有两种,一种是Debug,另一种是Release,我们需要的 ...
- 牛客 201 J Princess Principal (括号, 栈模拟)
大意: 给定序列$a$, $a_i$为偶数代表第$\frac{a_i}{2}$种左括号, 否则为第$\frac{a_i-1}{2}$种右括号. 询问区间是否是合法括号序列. #include < ...
- [转载]Grid Search
[转载]Grid Search 初学机器学习,之前的模型都是手动调参的,效果一般.同学和我说他用了一个叫grid search的方法.可以实现自动调参,顿时感觉非常高级.吃饭的时候想调参的话最差不过也 ...
- css———详解height与line_height
定义 height指的是块级别元素的高度: line-height指的是元素内容的高度. height和line-height的联系 CSS中起高度作用的应该就是height以及line-height ...
- Nginx如何配置禁止访问某个目录
location ~* \.(txt|doc)${ root /data/www/wwwroot/test; deny all; }
- Java BIO、NIO、AIO 基础,应用场景
Java对BIO.NIO.AIO的支持: Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必 ...
- mysql tinyint(1) 在java中被转化为boolean
数据库表字段类型为:tinyint 长度为1 在java中对应的类型是boolean 查询时直接在页面展示成true或false 如果是2,3,4 这样的也是默认成true,非常不友好. 解决方案: ...
- Mysql(三):表操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/6324TV/p/8481061.html 二 表介绍 表相当于文 ...
- vi和vim的使用
本章内容: vi编辑器简介 vim基本使用 vim使用技巧 一.vim简介 vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版. 二.vim的基本使用 1.vim的工作模式 命令模式:是主要使用快键 ...