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的使用的更多相关文章

  1. Kubernetes configMap(配置文件存储)

    Kubernetes configMap(配置文件存储) 官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure ...

  2. k8s配置中心-configmap,Secret密码

    目录 k8s配置中心-configmap,Secret 创建ConfigMap 使用ConfigMap subPath参数 Secret 官方文档 编写secret清单 使用secret 在 Pod ...

  3. kubernetes ConfigMap和Secret:配置应用程序

    7.1.配置容器化应用程序 7.2.向容器传递命令行参数 7.2.1.待Docker中定义命令与参数 1.了解ENTRYPOINT与CMD ENTRYPOINT定义容器启动时被调用的可以执行程序 CM ...

  4. (十)Kubernetes ConfigMap和Secret

    ConfigMap资源 介绍 ConfigMap是让配置文件从镜像中解耦,让镜像的可移植性和可复制性.许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.这些配置信息需要与docker im ...

  5. 09-kubernetes configMap secret

    目录 配置容器化应用配置的方式 命令创建和测试configMap 创建一个Pod 挂在测试 命令行文件类创建方式 创建Pod测试 创建后测试 贴近实际进行测试 创建后测试 secret 举例测试 ge ...

  6. kubernetes之secret

    Secret解决了密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中.Secret可以以Volume或者环境变量的方式使用. Secret类型: Opa ...

  7. Kubernetes ConfigMap详解,多种方式创建、多种方式使用

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 配置是程序绕不开的话题,在Kubernetes中使用ConfigMap来配置,它本质其实就是键值对.本文讲解如何 ...

  8. Kubernetes的Secret对象的使用

    Secret可以想要访问的加密数据,存放到Etcd中,Pod可以通过的Volume的方式,访问到Secret保存的信息 ,当数据修改的时候,Pod挂载的Secret文件也会被修改 一.创建Secret ...

  9. Kubernetes ConfigMap热更新

    ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中. 总结 更新 ConfigMap 后: 使用该 ConfigMap 挂载的 Env 不会同步更新 ...

随机推荐

  1. Kubernetes---Pod hook

    Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中.可以同时为Pod中的所有容器都配置 hook ...

  2. Codeforces Round #590 (Div. 3)补题

    要想上2000分,先刷几百道2000+的题再说 ---某神 题目 E F 赛时是否尝试 × × tag math bitmask 难度 2000 2400 状态 ∅ √ 解 E 待定 F 传送门 第一 ...

  3. 多线程学习:win32多线程编程基本概念(转)

    一.定义: 1.进程和线程的区别 进程:是程序的执行过程,具有动态性,即运行的程序就叫进程,不运行就叫程序 ,每个进程包含一到多个线程.线程:系统中的最小执行单元,同一进程中有多个线程,线程可以共享资 ...

  4. 基于docker的mongodb安装以及PHP使用

    说明:用docker基于单服务器,虚拟多个服务器的方案, 以下是两个config服务器,两个分片,以及每个分片有一个副本的方案 这里关于给mongodb设置远程密码的问题,我采取了用两个compser ...

  5. Pycharm超级好用的快捷键——效率之王

    Pycharm超级好用的快捷键--效率之王 IT界老黑 IT界老黑 带你领略Python的魅力 ​关注他 270 人赞同了该文章 最重要的快捷键 ctrl+shift+A:万能命令行 shift两次: ...

  6. S02_CH13_ AXI_PWM 实验

    S02_CH13_ AXI_PWM 实验 当学习了上一章的协议介绍内容后,开发基于这些协议的方案已经不是什么难事了,关键的一点就是从零到有的突破了.本章就以AXI-Lite总线实现8路LED自定义IP ...

  7. 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title

    [第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...

  8. 关于RESTful API

    添几篇文章: 一.What Is REST? 二.RESTful API最佳实践 三.MS Azure——API Design 这些文章里面也推荐了一些关联文章,微软那篇最详细,非常值得一读.

  9. 微信小程序实现折叠面板

    wxml: <view class='help'> <view class='help_item'> <view class='title' data-index='1' ...

  10. 通过hadoop上的hive完成WordCount

    1.启动hadoop 打开所有命令:start-all.sh 2.Hdfs上创建文件夹 创建名为PGOne到user/hadoop 3.上传文件至hdfs 创建和修改508.txt文件,里面尽量多写一 ...