当前位置: 首页 > news >正文

ConfigMaps-1

主要内容

  1. 使用 YAML 文件创建
  2. 使用命令行创建

预备知识
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 配置文件中使用 volumesvolumeMounts 字段。例如:

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 资源时,通常需要定义以下几个关键部分:

  1. apiVersion:指定要使用的 Kubernetes API 版本。

  2. kind:指定要创建的资源类型,如 Deployment、Service、ConfigMap 等。

  3. metadata:指定资源的元数据,包括名称、命名空间、标签等。

  4. 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,monstersplayer.maximum-lives=5

以下是对每个命令的详细解释:

  1. cat > cmyaml.yml <<EOF:此命令将 YAML 文件的内容输入到 cmyaml.yml 文件中。<<EOF 是一个 shell 的输入重定向符号,表示将输入的内容直到遇到 EOF 为止。

  2. kubectl create -f cmyaml.yml:此命令使用 kubectl 工具创建 ConfigMap。-f 参数指定要创建的资源的 YAML 文件。

  3. kubectl get configmaps:此命令使用 kubectl 工具列出所有的 ConfigMap。

  4. 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=value1ENV_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.解释

上述命令依次执行以下操作:

  1. echo hello world! > index.html:此命令将字符串 “hello world!” 写入名为 index.html 的文件中。

  2. kubectl create configmap indexcontent --from-file=index.html:此命令使用 kubectl 工具创建一个名为 indexcontent 的 ConfigMap,并将文件 index.html 的内容作为值添加到 ConfigMap 中。--from-file 参数指定要从文件中读取数据。

  3. 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节点创建了一些键值&#xff1a;代码如下&#xff08;示例&#xff09;: 2.解释 二.使用命令行创建1.创建了一个名为 person 的键值&#xff1a;代码如下&#xff08;示例&#xff09;: 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、熟练掌握二进制、十进制和十六进制的转换方法。 多少进制就是多少之间相加&#xff0c;比如十六进制就是十六一次一加&#xff1b;二进制转化十六进制&#xff0c;分成四个一组。 2、C语言变量类型与取值范围&#xff0c;for、while等基本语句的用法。 for、while等基本语句…...

算法刷题 week3

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

TCP详解之流量控制

TCP详解之流量控制 发送方不能无脑的发数据给接收方&#xff0c;要考虑接收方处理能力。 如果一直无脑的发数据给对方&#xff0c;但对方处理不过来&#xff0c;那么就会导致触发重发机制&#xff0c;从而导致网络流量的无端的浪费。 为了解决这种现象发生&#xff0c;TCP 提…...

mac根目录下创建文件不能问题

mac根目录下创建文件不能问题 解决办法2: 原因 mac os引入了系统完整性保护&#xff08;SIP&#xff09;机制&#xff0c;无法在/、/usr目录下新建文件 解决办法1&#xff1a; 打开终端&#xff0c;输入 csrutil status显示enabled表示启用了SIP&#xff0c;接下来需要禁用SIP…...

stable diffusion model训练遇到的问题【No module named ‘triton‘】

一天早晨过来&#xff0c;发现昨天还能跑的diffusion代码&#xff0c;突然出现了【No module named ‘triton’】的问题&#xff0c;导致本就不富裕的显存和优化速度雪上加霜&#xff0c;因此好好探究了解决方案。 首先是原因&#xff0c;由于早晨过来发现【电脑重启】导致了【…...

线性dp,优化记录,273. 分级

273. 分级 273. 分级 - AcWing题库 给定长度为 N 的序列 A&#xff0c;构造一个长度为 N 的序列 B&#xff0c;满足&#xff1a; B 非严格单调&#xff0c;即 B1≤B2≤…≤BN 或 B1≥B2≥…≥BN。最小化 S∑Ni1|Ai−Bi|。 只需要求出这个最小值 S。 输入格式 第一行包含一…...

JWT 安全及案例实战

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

Vue2+Vue3

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

华为云云耀云服务器L实例评测|redis漏洞回顾 MySQL数据安全解决 搭建主从集群MySQL 相关设置

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;期间遇到过MySQL数据库被攻击的情况&#xff0c;数据丢失&#xff0c;还好我有几份备份&#xff0c;没有造成太大的损失&#xff1b;后来有发现Redis数据库被攻击的情况&#xff0c;加入了redis密…...

【C++】详解std::thread

2023年9月10日&#xff0c;周日下午开始 2023年9月10日&#xff0c;周日晚上23:35完成 虽然这篇博客我今天花了很多时间去写&#xff0c;但是我对std::thread有了一个完整的认识 不过有些内容还没完善&#xff0c;以后有空再更新.... 目录 头文件类的成员类型方法(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介绍&#xff1a;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中实现生成二维码功能(代码示例)

完整示例&#xff1a; <template><view><view class"titleBar">执法检查“通行码”信息</view><view class"twoCode"><canvas canvas-id"qrcode"></canvas></view></view> </templat…...

深度解剖数据在栈中的应用

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1…...

Android10 SystemUI系列 需求定制(一)状态栏控制中心默认tile定制属性适配

一、前言 SystemUI 所包含的界面和模块比较多,这一节主要分享一下控制中心默认tile 列表的实现,通过配置可以实现 下拉状态栏,控制中心默认的tile显示 二、准备工作 按照惯例先找一下控制中心的代码,主要在下面这个路径下 frameworks/base/packages/SystemUI/src/com/andr…...

【微信小程序】文章设置

设置基本字体样式&#xff1a;行高、首行缩进 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…...

程序员在线周刊(冒泡算法篇)

大家好&#xff0c;欢迎来到程序员在线周刊&#xff01;本期我们将深入探讨一种经典的排序算法——冒泡算法&#xff0c;并附上具体的代码实现。 目录 简介代码原理广告广告1广告2广告3 简介 冒泡算法是一种简单但效率较低的排序算法&#xff0c;它的原理非常直观&#xff1a…...

string

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

html的日期选择插件

1.效果 2.文档 https://layui.gitee.io/v2/docs/ 3.引入 官网地址&#xff1a; https://layui.gitee.io/v2/ 引入&#xff08;在官网下载&#xff0c;&#xff09;jquery-1.7.2.min.js,layui/layui.js **<link href"js/layui/css/layui.css" rel"stylesh…...

OPPO哲库事件 “ 始末 ” ! 集体打哑谜?

1►OPPO哲库解散 2019 年&#xff0c;美国商务部以“科技网络安全”为由&#xff0c;将华为公司及其70家附属公司列入出口管制“实体名单”。与此同时&#xff0c;OPPO 创始人兼 CEO陈明永对外宣布&#xff0c;公司将为未来三年内投入 500 亿元用于前沿技术和深水区技术的探索…...

数据聚类分析

K均值 1.1 数据来源(随机生成) import matplotlib.pyplot as plt from sklearn.datasets import make_blobsX, y make_blobs(n_samples150,n_features2,centers3,cluster_std0.5,shuffleTrue,random_state0) # plt.scatter(X[:, 0], X[:, 1], cwhite, markero, edgecolorsbl…...

前 40 个 Microsoft Excel 面试问题答案

1&#xff09;什么是 Microsoft Excel&#xff1f; Microsoft Excel 是一个电子电子表格应用程序&#xff0c;使用户可以使用按行和列细分的电子表格系统&#xff0c;使用公式存储&#xff0c;组织&#xff0c;计算和处理数据。 它还提供了使用外部数据库进行分析&#xff0c;…...

ros2学习笔记:shell环境变量脚本setup.bash[-z][-n][-f]参数作用

-n作用 [ -n 字符串 ] or [ 字符串 ] 字符串的长度为非零&#xff08;有内容&#xff09;则为真。加-n与不加-n结果相同。 -z作用 [ -z 字符串 ] 字符串的长度为零则为真。 字符串为空即NULL时为真&#xff0c;与上面的-n相反。 -f作用 [ -f FILE ] 如果 FILE 存在且是一…...

xss渗透(跨站脚本攻击)

一、什么是XSS? XSS全称是Cross Site Scripting即跨站脚本&#xff0c;当目标网站目标用户浏览器渲染HTML文档的过程中&#xff0c;出现了不被预期的脚本指令并执行时&#xff0c;XSS就发生了。 这里我们主要注意四点&#xff1a; 1、目标网站目标用户&#xff1b; 2、浏览…...

9参数化重采样时频变换,基于MATLAB平台,程序已调通,可直接替换数据进行分析。

参数化重采样时频变换&#xff0c;基于MATLAB平台&#xff0c;程序已调通&#xff0c;可直接替换数据进行分析。 9matlab参数化重采样时频变换 (xiaohongshu.com)...

RK3568平台开发系列讲解(调试篇)系统运行相关频率设置

🚀返回专栏总目录 文章目录 一、CPU 频率设置二、DDR 频率设置三、NPU 频率设置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 CPU 默认是 interactive 状态,它会根据 CPU 使用率和目标负载来动态地调整 CPU 频率。为获得更高运行速度或者性能评估,我们需要手动固…...

嵌入式:驱动开发 Day2

作业&#xff1a;字符设备驱动&#xff0c;完成三盏LED灯的控制 驱动代码&#xff1a; mychrdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include &q…...

RK3399平台开发系列讲解(入门篇)VIM的基础命令

🚀返回专栏总目录 文章目录 一、Vim 命令速查二、其他命令三、Vim模式沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍Vim相关命令。 一、Vim 命令速查 简单说明一下,这张图上展示了一个键盘。图中的“•”表示,单个字母不是完整的命令,必须再有进一步…...

月季花app是哪家公司开发的/保定seo网络推广

前言 新上线系统&#xff0c;为公司业务发展助力,大家满怀期待, 系统除了在业务上满足需要&#xff0c;为客户带来价值。在上线后系统是否能承受住线上压力&#xff0c;在高峰会不会挂掉&#xff0c;给公司带来损失&#xff0c;因此在系统上线前越早做一些事情保障未来线上平稳…...

中国建设银行网站上不去/嘉定区整站seo十大排名

自我补充&#xff1a;ubuntu在线安装sqlite3数据库的方法&#xff1a; 系统平台&#xff1a;ubuntu12.04在ubuntu里面直接使用命令:sudo apt-get install sqlite3 &#xff0c;出现&#xff1a;……………………libsqlite3-0 ( 3.7.9-2ubuntu1) but 3.7.9-2ubuntu1.1 is to be…...

主流网站模板/搜索引擎网站排名

上篇&#xff1a;第 22 节 Flink 状态、恢复、快照 1、State Backend(状态的后端存储) 2、Restart Strategies(重启策略) 3、重启策略之固定间隔 (Fixed delay) 4、重启策略之失败率 (Failure rate) 5、重启策略之无重启 (No restart) 第一种&#xff1a;全局配置 flink-conf…...

网络公司名字免费起名大全/aso优化排名推广

文 / 李杰&#xff0c;常务董事、片区联席会议总裁、人力资源管理部总裁来源&#xff1a;《华为人报》2006年我刚担任GTS总裁的时候&#xff0c;公司已经开始重视项目经理队伍的建设了。当时公司的要求是建一支200人的项目经理队伍&#xff0c;我们从一个非常小的组织&#xff…...

政府网站建设服务/艾滋病多久能查出来

sqoop导出数据到mysql需要启动yarn start-yarn.shsqoop导出hive统计数据到mysql----------------------------1.复制mysql驱动程序到sqoop/lib下2.在mysql中创建表createtable stat_act_day(day varchar(50),appid varchar(50),appplatform varchar(50),brand varchar(50),dev…...

做机械出口用哪个网站好/新疆今日头条新闻

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000我把git命令都按顺序记录...&#xff08;sudo可以用sudo su去掉..&#xff09;安装git&#xff1a;apt-get install git创建目录&#xff1a;mkdir learngit用cd命令进入..创建git仓库&am…...