k8s入门之ConfigMap(九)
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(九)的更多相关文章
- k8s入门你至少需要会哪些
		
body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...
 - 无废话ExtJs 入门教程十九[API的使用]
		
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...
 - k8s入门系列之guestbook快速部署
		
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
 - Docker入门教程(九)10个镜像相关的API
		
Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...
 - k8s入门系列之扩展组件(一)DNS安装篇
		
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
 - k8s入门系列之集群安装篇
		
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
 - Jqgrid入门-Jqgrid格式化数据(九)
		
上一章已经说明了在Jqgrid中如何对数据分组,这一章主要探讨如何格式化Jqgrid中的数据.何谓格式化呢?举个例子,比如对时间格式化处理,去掉后面的时分秒:对数字进行处理,加上千分位分隔符,小数的保 ...
 - Bootstrap入门(十九)组件13:页头与缩略图
		
Bootstrap入门(十九)组件13:页头与缩略 1.页头 2.默认的缩略图 3.自定义缩略图 页头组件能够为 h1 标签增加适当的空间,并且与页面的其他部分形成一定的分隔.它支持 h1 标签内内嵌 ...
 - K8s 入门
		
中文文档:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84 小结大白话 Portainer 挺好 ...
 
随机推荐
- 什么是Spring IOC 容器?
			
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期.
 - CopyOnWriteArrayList 可以用于什么应用场景?
			
CopyOnWriteArrayList(免锁容器)的好处之一是当多个迭代器同时遍历和修改这 个列表时,不会抛出 ConcurrentModificationException.在 CopyOnWri ...
 - 学习Redis(一)
			
一.NoSQL 1.NoSql介绍 1.not only SQL,非关系型数据库,它能解决常规数据库的并发.IO与性能的瓶颈 2.解决以下问题: ① 对数据库的高并发读写需求 ② 大数据的高效存储和访 ...
 - 小程序web-view加载H5信息不全
			
满足小程序的web-view标签跳转网页形式 配置小程序后台的web-view(业务域名) 可打开关联的公众号的文章 通常实现逻辑 页面加载的时候赋值于一个data对象的值,然后赋值到web-view ...
 - dva+react+antd+webpack 项目开发配置
			
如何搭建一个dva项目如何搭建一个dva项目 后期项目会在github上进行书写,同时也会在segmentfault上进行同步-3Q拜读-
 - 前端面试题整理——关于EventLoop(1)
			
下面代码输出打印值顺序: async function async1(){ console.log('async1 start'); await async2(); console.log('asyn ...
 - C#编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出
			
编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出. 代码: using System; using System.Collections.Generic; using Syst ...
 - ajax遍历list数据解决方法
			
在使用ajax遍历后台传来的list的时,总是遍历不出来,明明在控制台可以打印出来,但就是遍历不出来 之后发现是忘了加一个 dataType: "json" 导致遍历不出来
 - 【uniapp 开发】工具类 -- MathUtil
			
获取随机数 /* ** randomWord 产生任意长度随机字母数字组合 ** randomFlag 是否任意长度 min 任意长度最小位[固定位数] max 任意长度最大位 ** ** 生成6-1 ...
 - Message: 'geckodriver' executable needs to be in PATH
			
1.下载geckodriver.exe:下载地址:mozilla/geckodriver请根据系统版本选择下载:(如Windows 64位系统) 2.下载解压后将getckodriver.exe复制到 ...