ConfigMaps-1
文章目录
- 主要内容
- 一.使用 YAML 文件创建
- 1.在data节点创建了一些键值:
- 代码如下(示例):
- 2.解释
- 二.使用命令行创建
- 1.创建了一个名为 person 的键值:
- 代码如下(示例):
- 2.解释
- 3.创建了一个 index.html 文件,然后用--from-file 来引用
- 代码如下(示例):
- 4.解释
- 总结
主要内容
- 使用 YAML 文件创建
- 使用命令行创建
预备知识
ConfigMaps 是 Kubernetes 中一种用于存储配置数据的资源对象。它允许您将配置信息(如环境变量、命令行参数、配置文件等)与应用程序分离,以便您可以在不重新构建镜像的情况下更改配置。
ConfigMap 在设计上不是用来保存大量数据的,在 ConfigMap 中保存的数据不可超过 1MiB,如果超出此限制,可能考虑使用挂载存储卷或者使用独立的数据库或者文件服务。
ConfigMaps 可以通过以下两种方式使用:
1. 环境变量:您可以将 ConfigMap 中的键值对映射为容器的环境变量。这样,您的应用程序可以通过读取环境变量来获取配置信息。
**2. 挂载卷:**您可以将 ConfigMap 挂载到容器中的特定路径,使应用程序能够直接读取配置文件。这种方式适用于那些需要读取大量配置文件的应用程序。
下面是使用 ConfigMaps 的一些详细解释:
1. 创建 ConfigMap:
您可以使用 kubectl create configmap
命令从文件或直接从命令行创建 ConfigMap。例如,kubectl create configmap my-config --from-file=config.properties
将从名为 config.properties
的文件创建一个名为 my-config
的 ConfigMap。
2. 查看 ConfigMap:
您可以使用 kubectl get configmaps
命令来查看当前命名空间中的所有 ConfigMaps。使用 kubectl describe configmap <configmap-name>
命令可以查看特定 ConfigMap 的详细信息。
3. 使用 ConfigMap:
要将 ConfigMap 中的配置作为环境变量注入到容器中,您可以在 Pod 的 YAML 配置文件中使用 envFrom
字段。例如:
spec:containers:- name: my-appimage: my-imageenvFrom:- configMapRef:name: my-config
要将 ConfigMap 挂载为卷,您可以在 Pod 的 YAML 配置文件中使用 volumes
和 volumeMounts
字段。例如:
spec:containers:- name: my-appimage: my-imagevolumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: my-config
4. 更新 ConfigMap:
您可以使用 kubectl edit configmap <configmap-name>
命令来编辑 ConfigMap。您还可以使用 kubectl apply -f <configmap-file>
命令来更新 ConfigMap。
5. 删除 ConfigMap:
您可以使用 kubectl delete configmap <configmap-name>
命令来删除 ConfigMap。
这些是使用 ConfigMaps 的一些常见用法和详细解释。ConfigMaps 提供了一种方便的方式来管理和使用配置数据,使您的应用程序更加灵活和可配置。
一.使用 YAML 文件创建
当使用 YAML 文件创建 Kubernetes 资源时,通常需要定义以下几个关键部分:
-
apiVersion
:指定要使用的 Kubernetes API 版本。 -
kind
:指定要创建的资源类型,如 Deployment、Service、ConfigMap 等。 -
metadata
:指定资源的元数据,包括名称、命名空间、标签等。 -
spec
:指定资源的规格,包括容器镜像、端口、环境变量、挂载卷等。
下面是一个使用 YAML 文件创建 Deployment 资源的示例:
apiVersion: apps/v1
kind: Deployment
metadata:name: my-deploymentlabels:app: my-app
spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: my-containerimage: my-imageports:- containerPort: 8080env:- name: ENV_VAR1value: value1- name: ENV_VAR2value: value2volumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: my-config
在这个示例中:
apiVersion
设置为apps/v1
,表示使用 Apps API 的版本。kind
设置为Deployment
,表示创建一个 Deployment 资源。metadata
中的name
设置为my-deployment
,表示 Deployment 的名称。spec
中的replicas
设置为 3,表示要创建 3 个 Pod。selector
中的matchLabels
设置为app: my-app
,表示选择具有app: my-app
标签的 Pod。template
中的metadata
中的labels
设置为app: my-app
,表示为 Pod 设置app: my-app
标签。template
中的spec
中的containers
部分定义了容器的规格,包括容器名称、镜像、端口、环境变量等。template
中的spec
中的volumes
部分定义了要挂载的卷,这里使用了一个 ConfigMap 类型的卷。template
中的spec
中的volumeMounts
部分定义了卷的挂载路径。
您可以使用 kubectl create -f <filename>
命令从 YAML 文件创建资源。例如,kubectl create -f deployment.yaml
将从 deployment.yaml
文件中创建 Deployment 资源。
希望这个示例能够帮助您更好地理解如何使用 YAML 文件创建 Kubernetes 资源。
1.在data节点创建了一些键值:
代码如下(示例):
cat > cmyaml.yml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:name: game-demo
data:player_initial_lives: "3"ui_properties_file_name: "tomcat"game.properties: |enemy.types=aliens,monstersplayer.maximum-lives=5
EOF
kubectl create -f cmyaml.yml
kubectl get configmaps
kubectl describe configmaps game-demo
2.解释
上述的 YAML 文件定义了一个名为 game-demo
的 ConfigMap,其中包含了三个键值对:
player_initial_lives
的值为 “3”ui_properties_file_name
的值为 “tomcat”game.properties
的值为一个多行文本,包含了两个配置项:enemy.types=aliens,monsters
和player.maximum-lives=5
以下是对每个命令的详细解释:
-
cat > cmyaml.yml <<EOF
:此命令将 YAML 文件的内容输入到cmyaml.yml
文件中。<<EOF
是一个 shell 的输入重定向符号,表示将输入的内容直到遇到EOF
为止。 -
kubectl create -f cmyaml.yml
:此命令使用kubectl
工具创建 ConfigMap。-f
参数指定要创建的资源的 YAML 文件。 -
kubectl get configmaps
:此命令使用kubectl
工具列出所有的 ConfigMap。 -
kubectl describe configmaps game-demo
:此命令使用kubectl
工具显示名为game-demo
的 ConfigMap 的详细信息。
通过执行上述命令,您将创建一个名为 game-demo
的 ConfigMap,并将其添加到 Kubernetes 集群中。然后,您可以使用 kubectl get configmaps
命令查看所有的 ConfigMap,并使用 kubectl describe configmaps game-demo
命令查看特定 ConfigMap 的详细信息。
二.使用命令行创建
要使用命令行创建 ConfigMap,可以使用 kubectl create configmap
命令。下面是一个使用命令行创建 ConfigMap 的示例:
kubectl create configmap my-config --from-literal=ENV_VAR1=value1 --from-literal=ENV_VAR2=value2
在这个示例中,我们使用 kubectl create configmap
命令创建了一个名为 my-config
的 ConfigMap。--from-literal
参数用于指定要添加到 ConfigMap 的键值对。在这里,我们添加了两个键值对 ENV_VAR1=value1
和 ENV_VAR2=value2
。
要创建一个从文件中读取的 ConfigMap,可以使用 --from-file
参数。例如:
kubectl create configmap my-config --from-file=config.properties
在这个示例中,我们使用 --from-file
参数指定要从文件 config.properties
中读取配置,并创建一个名为 my-config
的 ConfigMap。
要创建一个从目录中读取的 ConfigMap,可以使用 --from-file
参数并指定目录路径。例如:
kubectl create configmap my-config --from-file=configs/
在这个示例中,我们使用 --from-file
参数指定要从目录 configs/
中读取配置,并创建一个名为 my-config
的 ConfigMap。
希望这个示例能够帮助您更好地理解如何使用命令行创建 ConfigMap。使用命令行创建 ConfigMap 可以更快速和便捷地管理配置数据。
1.创建了一个名为 person 的键值:
代码如下(示例):
kubectl create configmap player --from-literal=username=player --from-literal=age=18
kubectl describe configmaps player
2.解释
上述命令使用 kubectl
工具创建了一个名为 player
的 ConfigMap,并向其添加了两个键值对。
--from-literal=username=player
表示将键username
的值设置为player
。--from-literal=age=18
表示将键age
的值设置为18
。
然后,使用 kubectl describe configmaps player
命令来查看 player
ConfigMap 的详细信息。
通过执行上述命令,您将创建一个名为 player
的 ConfigMap,并将其添加到 Kubernetes 集群中。然后,使用 kubectl describe configmaps player
命令可以查看 player
ConfigMap 的详细信息,包括它的名称、命名空间、标签、数据等。
3.创建了一个 index.html 文件,然后用–from-file 来引用
代码如下(示例):
echo hello world! > index.html
kubectl create configmap indexcontent --from-file=index.html
kubectl describe configmaps indexcontent
4.解释
上述命令依次执行以下操作:
-
echo hello world! > index.html
:此命令将字符串 “hello world!” 写入名为index.html
的文件中。 -
kubectl create configmap indexcontent --from-file=index.html
:此命令使用kubectl
工具创建一个名为indexcontent
的 ConfigMap,并将文件index.html
的内容作为值添加到 ConfigMap 中。--from-file
参数指定要从文件中读取数据。 -
kubectl describe configmaps indexcontent
:此命令使用kubectl
工具显示名为indexcontent
的 ConfigMap 的详细信息。
执行上述命令后,您将创建一个名为 indexcontent
的 ConfigMap,并将文件 index.html
的内容添加到 ConfigMap 中。然后,您可以使用 kubectl describe configmaps indexcontent
命令查看 indexcontent
ConfigMap 的详细信息,包括其名称、命名空间、标签、数据等。
总结
以上是今天要讲的内容,学到了ConfiigMaps相关用法,使用YAML文件创建,使用命令行创建。
相关文章:

ConfigMaps-1
文章目录 主要内容一.使用 YAML 文件创建1.在data节点创建了一些键值:代码如下(示例): 2.解释 二.使用命令行创建1.创建了一个名为 person 的键值:代码如下(示例): 2.解释3.创建了一个 index.html 文件&…...
docker上安装es
安装docker 1 安装docker依赖 yum install -y yum-utils2 设置docker仓库镜像地址 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3 安装制定版本的docker yum -y install docker-ce-20.10.17-3.el74 查看是否安装成功 y…...

#循循渐进学51单片机#c语言基础和流水灯实现#not.3
1、熟练掌握二进制、十进制和十六进制的转换方法。 多少进制就是多少之间相加,比如十六进制就是十六一次一加;二进制转化十六进制,分成四个一组。 2、C语言变量类型与取值范围,for、while等基本语句的用法。 for、while等基本语句…...

算法刷题 week3
这里写目录标题 1.重建二叉树题目题解(递归) O(n) 2.二叉树的下一个节点题目题解(模拟) O(h) 3.用两个栈实现队列题目题解(栈,队列) O(n) 1.重建二叉树 题目 题解 (递归) O(n) 递归建立整棵二叉树:先递归创建左右子树,然后创建根节点&…...

TCP详解之流量控制
TCP详解之流量控制 发送方不能无脑的发数据给接收方,要考虑接收方处理能力。 如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导致网络流量的无端的浪费。 为了解决这种现象发生,TCP 提…...
mac根目录下创建文件不能问题
mac根目录下创建文件不能问题 解决办法2: 原因 mac os引入了系统完整性保护(SIP)机制,无法在/、/usr目录下新建文件 解决办法1: 打开终端,输入 csrutil status显示enabled表示启用了SIP,接下来需要禁用SIP…...
stable diffusion model训练遇到的问题【No module named ‘triton‘】
一天早晨过来,发现昨天还能跑的diffusion代码,突然出现了【No module named ‘triton’】的问题,导致本就不富裕的显存和优化速度雪上加霜,因此好好探究了解决方案。 首先是原因,由于早晨过来发现【电脑重启】导致了【…...
线性dp,优化记录,273. 分级
273. 分级 273. 分级 - AcWing题库 给定长度为 N 的序列 A,构造一个长度为 N 的序列 B,满足: B 非严格单调,即 B1≤B2≤…≤BN 或 B1≥B2≥…≥BN。最小化 S∑Ni1|Ai−Bi|。 只需要求出这个最小值 S。 输入格式 第一行包含一…...

JWT 安全及案例实战
文章目录 一、JWT (json web token)安全1. Cookie(放在浏览器)2. Session(放在服务器)3. Token4. JWT (json web token)4.1 头部4.1.1 alg4.1.2 typ 4.2 payload4.3 签名4.4 通信流程 5. 防御措施 二、漏洞实例(webgoa…...

Vue2+Vue3
文章目录 Vue快速上手Vue是什么第一个Vue程序插值表达式Vue核心特性:响应式 Vue指令v-htmlv-show 与 v-ifv-else 与 v-else-ifv-onv-bindv-forv-model指令修饰符 计算属性watch侦听器(监视器)watch——简写watch——完整写法 Vue生命周期 和 …...

华为云云耀云服务器L实例评测|redis漏洞回顾 MySQL数据安全解决 搭建主从集群MySQL 相关设置
前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到过MySQL数据库被攻击的情况,数据丢失,还好我有几份备份,没有造成太大的损失;后来有发现Redis数据库被攻击的情况,加入了redis密…...

【C++】详解std::thread
2023年9月10日,周日下午开始 2023年9月10日,周日晚上23:35完成 虽然这篇博客我今天花了很多时间去写,但是我对std::thread有了一个完整的认识 不过有些内容还没完善,以后有空再更新.... 目录 头文件类的成员类型方法(construc…...

Apache HTTPD 漏洞复现
文章目录 Apache HTTPD 漏洞复现1. Apache HTTPD 多后缀解析漏洞1.1 漏洞描述1.2 漏洞复现1.3 漏洞利用1.4 获取GetShell1.5 漏洞防御 2. Apache HTTPD 换行解析漏洞-CVE-2017-157152.1 漏洞描述2.2 漏洞复现2.3 漏洞利用2.4 修复建议 3. Apache HTTP Server_2.4.49 路径遍历和…...
【C++从入门到精通】第2篇:C++基础知识(中)
文章目录 2.1 iostream介绍:cout、cin和endl2.1.1 输入/输出库2.1.2 std::cout2.1.3 std::endl2.1.4 std::cout是缓冲的2.1.5 std::endl与\n2.1.6 std::cin2.1.7 总结2.1.8 练习时间 2.2 未初始化的变量和未定义的行为2.2.1 未初始化的变量2.2.2 未定义行为2.2.3 明…...
【RuoYi移动端】uni-app中实现生成二维码功能(代码示例)
完整示例: <template><view><view class"titleBar">执法检查“通行码”信息</view><view class"twoCode"><canvas canvas-id"qrcode"></canvas></view></view> </templat…...

深度解剖数据在栈中的应用
> 作者简介:დ旧言~,目前大一,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕…...
Android10 SystemUI系列 需求定制(一)状态栏控制中心默认tile定制属性适配
一、前言 SystemUI 所包含的界面和模块比较多,这一节主要分享一下控制中心默认tile 列表的实现,通过配置可以实现 下拉状态栏,控制中心默认的tile显示 二、准备工作 按照惯例先找一下控制中心的代码,主要在下面这个路径下 frameworks/base/packages/SystemUI/src/com/andr…...

【微信小程序】文章设置
设置基本字体样式:行高、首行缩进 font-size: 32rpx;line-height: 1.6em;text-indent: 2em;padding: 20rpx 0;border-bottom: 1px dashed var(--themColor); 两端对齐 text-align: justify; css文字两行或者几行显示省略号 css文字两行或者几行显示省略号_css…...
程序员在线周刊(冒泡算法篇)
大家好,欢迎来到程序员在线周刊!本期我们将深入探讨一种经典的排序算法——冒泡算法,并附上具体的代码实现。 目录 简介代码原理广告广告1广告2广告3 简介 冒泡算法是一种简单但效率较低的排序算法,它的原理非常直观:…...

string
目录 六、STL简介 (一)什么是STL (二)STL的版本 (三)STL六大组件 七、string (一)标准库中的string 1、string类 2、string常用的接口 1)string类对象的常见构造 2)string类对象的容量操作 3)string类对象的访问及遍历操作 4)string类对象的修改操作 5)string类非成…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...