ConfigMap是k8s的配置管理工具,通常用来保存明文的配置信息,以key-value形式传递配置。

一、使用命令创建ConfigMap对象

1.通过--from-literal参数创建

kubectl create configmap mycm1 --from-literal=appid=order-app --from-literal=appsecret=dfdg12342

(1)查看创建结果

kubectl get secret

(2)使用describe命令查看详情

kubectl describe secret mysecret1

(3)输出yaml文件格式查看详情

kubectl get secret mysecret1 -o yaml

2.通过已有的应用配置文件创建

(1)创建一个应用的配置文件

vi appsettings.json

(2)写入以下测试内容

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}

(3)使用--from-file参数指定该文件

kubectl create cm mycm2 --from-file=appsettings.json

--from-file可以使用多次;也可以使用目录,表示该目录下所有的配置文件都会创建成cm对象,默认key为文件名。

(4)查看创建结果

二、使用yaml文件创建ConfigMap

1.创建yaml文件

vi cm-my3.yaml

2.编写yaml文件内容

apiVersion: v1
kind: ConfigMap
metadata:
name: mycm3
data:
ordersvc-conf: |+
IP: "192.168.59.110"
    Port: 10000

3.执行创建命令

kubectl apply -f cm-my3.yaml

4.查看创建结果

三、使用ConfigMap对象

1.通过环境变量的形式

liunx自带的命令env,用来查看当前系统的环境变量,我们可以把cm对象设置到环境变量上来查看。

(1)新建pod对象的yaml文件

vi mycm1-env.yaml

(2)编写yaml文件内容


apiVersion: v1
kind: Pod
metadata:
name: pod-test-mycm1
spec:
containers:
- name: pod-test-mycm1-bb
image: busybox
command: ["/bin/sh", "-c", "env"]
# 从cm对象中获取对应key的值赋值给环境变量
env:
- name: APPID
valueFrom:
configMapKeyRef:
name: mycm1
key: appid
- name: APPSECRET
valueFrom:
configMapKeyRef:
name: mycm1
key: appsecret

(3)创建pod

kubectl create -f mycm1-env.yaml

(4)查看pod,在默认名称空间下

通过查看此pod的日志,可以看到输出的环境变量信息是mycm1对象的信息

2.通过vloume挂载方式

(1)新建pod对象的yaml文件

vi mycm2-volume.yaml

(2)编写yaml文件内容

apiVersion: v1
kind: Pod
metadata:
name: pod-test-mycm2
spec:
containers:
- name: pod-test-mycm2-bb
image: busybox
command: ["/bin/sh", "-c", "cat /etc/cms/my-appsettings.json"]
volumeMounts:
- name: cms
mountPath: /etc/cms
volumes:
- name: cms
configMap:
name: mycm2
items:
# 把cm对象挂载到文件名
- key: appsettings.json
       path: my-appsettings.json

(3)创建pod

kubectl create -f mycm2-volume.yaml

(4)查看pod,在默认名称空间下

通过查看此pod的日志,可以看到输出的信息是mycm2对象中的数据

k8s入门之ConfigMap(九)的更多相关文章

  1. k8s入门你至少需要会哪些

    body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...

  2. 无废话ExtJs 入门教程十九[API的使用]

    无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...

  3. k8s入门系列之guestbook快速部署

    k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...

  4. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  5. k8s入门系列之扩展组件(一)DNS安装篇

    DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...

  6. k8s入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  7. Jqgrid入门-Jqgrid格式化数据(九)

    上一章已经说明了在Jqgrid中如何对数据分组,这一章主要探讨如何格式化Jqgrid中的数据.何谓格式化呢?举个例子,比如对时间格式化处理,去掉后面的时分秒:对数字进行处理,加上千分位分隔符,小数的保 ...

  8. Bootstrap入门(十九)组件13:页头与缩略图

    Bootstrap入门(十九)组件13:页头与缩略 1.页头 2.默认的缩略图 3.自定义缩略图 页头组件能够为 h1 标签增加适当的空间,并且与页面的其他部分形成一定的分隔.它支持 h1 标签内内嵌 ...

  9. K8s 入门

    中文文档:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84 小结大白话 Portainer 挺好 ...

随机推荐

  1. 使用Spring框架的好处是什么?

    轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的编程(AOP):Spring支持 ...

  2. java-第三方工具去做一些校验

    推荐大家使用第三方 jar 的工具类去做判空.比如:从 Map 中取一个 key 的值,可以用 MapUtils 这个类:对字符串判空使用 StringUtils 这个类:对集合进行判空使用 Coll ...

  3. springboot使用策略模式实现一个基本的促销

    策略模式 定义了算法族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户 源码:https://github.com/youxiu326/sb_promotion.git ...

  4. 学习ELK日志平台(三)

    ELK(elasticsearch.logstash.kibana) Elastic Stack是原ELK Stack在5.0版本加入Beats套件后的新称呼 解决痛点: 开发人员不能登录线上serv ...

  5. 学习openstack(六)

    VIII openstack(1) 传统的数据中心面临的问题:成本.效率(要快).管理方面(物理机.云主机): 云计算:对运维需求总体量是减少了,尤其是硬件工程师,对运维的技术要求提高了: 云计算是个 ...

  6. led指示灯电路图大全(八款led指示灯电路设计原理图详解)

    led指示灯电路图大全(八款led指示灯电路设计原理图详解) led指示灯电路图(一) 图1所示电路中只有两个元件,R选用1/6--1/8W碳膜电阻或金属膜电阻,阻值在1--300K之间. Ne为氖泡 ...

  7. js中一个函数调用另一个函数变量;判断鼠标按住/手指左右滑动

    <script> function myFunction() { var x1=event.clientX;//只需要将被调用的变量前的var删除即可在下个函数调用: document.g ...

  8. SVG vs Image, SVG vs Iconfont

    这可能是个别人写过很多次的话题,但貌似由于兼容性的原因?图标的显示还是用着 Iconfont 或者 CSS Sprite 的形式?希望通过自己新瓶装旧酒的方式能重新引导一下问题. SVG vs Ima ...

  9. python-转换函数使用

    输入一个整数和进制,转换成十进制输出 输入格式: 在一行输入整数和进制 输出格式: 在一行十进制输出结果 输入样例: 在这里给出一组输入.例如: 45,8 输出样例: 在这里给出相应的输出.例如: 3 ...

  10. 用Python爬取斗鱼网站的一个小案例

    思路解析: 1.我们需要明确爬取数据的目的:为了按热度查看主播的在线观看人数 2.浏览网页源代码,查看我们需要的数据的定位标签 3.在代码中发送一个http请求,获取到网页返回的html(需要注意的是 ...