k8s概念-ConfigMap
回到目录
一般用于去存储 Pod 中应用所需的一些配置信息,或者环境变量,将配置于 Pod 分开,避免应为修改配置导致还需要重新构建 镜像与容器。
1 创建ConfigMap
#使用 kubectl create configmap -h 查看示例,构建 configmap 对象
Examples:# Create a new config map named my-config based on folder barkubectl create configmap my-config --from-file=path/to/bar# Create a new config map named my-config with specified keys instead of file basenames on diskkubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt# Create a new config map named my-config with key1=config1 and key2=config2kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2# Create a new config map named my-config from the key=value pairs in the filekubectl create configmap my-config --from-file=path/to/bar# Create a new config map named my-config from an env filekubectl create configmap my-config --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
1.1 将指定目录下所有文件加载到配置文件中
# Create a new config map named my-config based on folder bar
# kubectl create configmap my-config --from-file=path/to/bar
#example:
#在test目录下有两个配置文件db.properties redis.properties#1.创建configmap,名字为test-cm,从test目录下加载
[root@k8s-master1 configmap]# kubectl create cm test-cm --from-file=test/
configmap/test-cm created#2.查看configmap
[root@k8s-master1 configmap]# kubectl get cm
NAME DATA AGE
kube-root-ca.crt 1 5d9h #k8s默认的认证
test-cm 2 7s #我们创建的#3.查看test-cm的详细信息
[root@k8s-master1 configmap]# kubectl describe cm test-cm
#内容如下:
Name: test-cm
Namespace: default
Labels: <none>
Annotations: <none>Data
====
db.properties: #key
----
username: root
password: 1234redis.properties:
----
port: 6379BinaryData
====Events: <none>
1.2 指定一个或多个文件和key
# Create a new config map named my-config with specified keys instead of file basenames on disk
# kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt#指定一个或多个文件,不加key时以文件名作为key#example:#创建configmap,名称为testfile-cm,从指定的test目录下的db.properties加载
[root@k8s-master1 configmap]# kubectl create cm testfile-cm --from-file=test/db.properties
configmap/testfile-cm created#查看configmap
[root@k8s-master1 configmap]# kubectl get cm
NAME DATA AGE
kube-root-ca.crt 1 5d10h
testfile-cm 1 5s#查看详情
[root@k8s-master1 configmap]# kubectl describe cm testfile-cm
Name: testfile-cm
Namespace: default
Labels: <none>
Annotations: <none>Data
====
db.properties: #不指定key,以文件名为key,如果指定则以具体指定作为key
----
username: root
password: 1234BinaryData
====Events: <none>
1.3 命令上手动添加key-value
# Create a new config map named my-config with key1=config1 and key2=config2
#kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2#直接写入key和value#example:#创建configmap,名称为test-cm,手动添加key:user,value:root;key:password,value:1234
[root@k8s-master1 configmap]# kubectl create cm test-cm --from-literal=user=root --from-literal=password=1234
configmap/test-cm created
[root@k8s-master1 configmap]# kubectl get cm
NAME DATA AGE
kube-root-ca.crt 1 5d10h
test-cm 2 7s
[root@k8s-master1 configmap]# kubectl describe cm test-cm
Name: test-cm
Namespace: default
Labels: <none>
Annotations: <none>Data
====
password: #key
----
1234 #value
user: #key
----
root #valueBinaryData
====Events: <none>
2 configmap的使用
在pod中
将configmap中的数据设置为容器的环境变量
将ConfigMap中的数据设置为命令行参数
使用Volume将ConfigMap作为文件或目录挂载
编写代码在 Pod 中运行,使用 Kubernetes API 来读取 ConfigMap
将configmap挂载到容器中,configmap变化,容器自动更新
而 写入环境变量不会自动更新
2.1 配置到容器的环境变量中
# test-pod-configmap.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod-configmap
spec:containers:- name: test-busyboximage: busyboximagePullPolicy: IfNotPresentargs:- sleep- "86400"env: # env,配置容器环境变量- name: KEY1 # 容器环境变量key为key1valueFrom: # value内容configMapKeyRef: # 通过configmap的key映射name: my-config # configmap的名称key: key1 # configmap中的key- name: KEY2valueFrom:configMapKeyRef:name: my-configkey: key2
2.2 设置为命令行参数
# test-pod-configmap-cmd
apiVersion: v1
kind: Pod
metadata:name: test-pod-configmap-cmd
spec:containers:- name: test-busyboximage: busyboximagePullPolicy: IfNotPresentcommand: [ "/bin/sh","-c","echo $(KEY1) $(KEY2)"]env:- name: KEY1valueFrom:configMapKeyRef:name: my-configkey: key1- name: KEY2valueFrom:configMapKeyRef:name: my-configkey: key2restartPolicy: Never
2.3 将configmap挂载到容器中
# test-pod-projected-configmap-volume.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod-projected-configmap-volume
spec:containers:- name: test-pod-busyboximage: busyboximagePullPolicy: IfNotPresentargs:- sleep- "86400"volumeMounts: # 挂载- name: config-volume # 挂载的数据卷名mountPath: "/projected-volume" # 挂载到哪的路径readOnly: true # 只读权限volumes: # 数据卷- name: config-volume # 数据卷名称projected:sources:- configMap: # 数据卷为configmapname: my-config # 数据卷名相关文章:
k8s概念-ConfigMap
回到目录 一般用于去存储 Pod 中应用所需的一些配置信息,或者环境变量,将配置于 Pod 分开,避免应为修改配置导致还需要重新构建 镜像与容器。 1 创建ConfigMap #使用 kubectl create configmap -h 查看示例,构建 configmap 对象…...
Mybatis 实体类属性名和表中字段名不一致怎么处理
一. 前言 最近耀哥有学生出去面试,被问到 “Mybatis实体类的属性名和表中的字段名不一致该怎么处理?”,这其实是一个很经典的面试题,接下来耀哥就为大家详细解析一下这道面试题。 二. 分析 2.1 实体类和字段名不一致所带来的后果…...
CAS - 从AtomicInteger窥探CAS
Unsafe类是CAS的核心,由于Java方法无法直接访问底层,需要通过本地方法(native)来实现,Unsafe类相当于一个桥梁。基于Unsafe类,可以直接操作特定的内存数据。 我们从上一篇说CAS基本原理的时候,有说到一个“资源”被100…...
micro-ros IMU ML 代码
示例代码: #include <micro_ros_arduino.h>#include "LSM6DSOXSensor.h" #include "lsm6dsox_activity_recognition_for_mobile.h"#include <stdio.h> #include <rcl/rcl.h> #include <rcl/error_handling.h> #inclu…...
二十三种设计模式第二十四篇--访问者模式(完结撒花)
在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。 通过这种方式,元素的执行算法可以随着访问者改变而改变。 这种类型的设计模式属于行为型模式。根据模式,元素对象已接…...
月报总结|Moonbeam 7月份大事一览
炎炎夏日,Moonbeam于越南举办了线下交流会,在EthCC 2023和以太坊社区成员共同讨论多链应用,在Polkadot Decoded中分享了Moonbeam的与众不同之处。 Bear Necessities Hackathon也于本月圆满结束,选出了每个赛道最杰出的项目&#…...
【2023.8】docker一键部署wvp-GB28181-pro和ZLMediaKit过程全记录
安装docker 使用的操作系统是ubuntu20.04 如何在 Ubuntu 20.04 上安装和使用 Docker https://developer.aliyun.com/article/762674 docker拉取配置好的ZLMediaKIt和wvp-GB28181-pro docker pull 648540858/wvp_pro第一次运行 docker一键运行ZLMediaKIt和wvp-GB28181-pro …...
【2023】字节跳动 10 日心动计划——第四关
目录 1. 买卖股票的最佳时机2. 打家劫舍 II 1. 买卖股票的最佳时机 🔗 原题链接:121. 买卖股票的最佳时机 假设在第 i i i 天卖出股票可获得最大利润,那么买入股票必然是在前 i − 1 i-1 i−1 天中的某一天。更进一步,买入股票应…...
数据库与数据仓库的区别及关系
数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…...
Emacs之设置行号前景颜色(字体颜色)/背景颜色/光标颜色/背景透明度(一百二十七)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
【hive经典指标,离线数仓指标,ADS层指标分析】最近7日内连续3日下单用户数
1.建表语句 DROP TABLE IF EXISTS ads_order_continuously_user_count; CREATE EXTERNAL TABLE ads_order_continuously_user_count (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 最近天数,7:最近7天,order_continu…...
线上java程序CPU及内存占用过高问题排查总结
背景 最近发现线上的一个JAVA程序总是过段时间慢慢卡死,最后导致无法提供服务,外部请求接口超时。 经排查发现,该程序CPU及内存占用都很高,导致整个系统负载很高。 到这里,就想到了对程序内存进行分析。排查过程 查询…...
c高级:day3
作业: 1. 整理思维导图 2.判断家目录下,普通文件的个数和目录文件的个数 #!/bin/bash ######################################################################## # File Name: zy1.sh # Created Time: 2023年08月04日 星期五 19时13分08秒 ##############################…...
Java检查值是否存在于数组中的3种方法
在 Java 中,有许多方法可以检查此数组中是否存在特定元素。 1)使用线性搜索方法 时间复杂度:O(N) 辅助空间:O(1) for (int element : arr) { if (element toCheckValue) { return true; } } 示例代码: import java.ut…...
python 连接oracle pandas以简化excel的编写和数据操作
python代码 Author: liukai 2810248865qq.com Date: 2022-08-18 04:28:52 LastEditors: liukai 2810248865qq.com LastEditTime: 2023-07-06 22:12:56 FilePath: \PythonProject02\pandas以简化excel的编写和数据操作.py Description: 这是默认设置,请设置customMade, 打开koro…...
Kubernetes高可用集群二进制部署(三)部署api-server
Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署…...
【网络|TCP】三次握手、四次握手
TCP是一种面向连接的可靠的传输协议,建立和断开TCP连接时需要进行握手的过程。其中,TCP的连接建立需要进行三次握手,而连接断开则需要进行四次握手。 解释 三次握手 第一次握手:客户端发送一个SYN(同步)报…...
刷题笔记 day7
力扣 209 长度最小的子数组 解法:滑动指针(对同向双指针区间内的数据处理) 1)先初始化 两个指针 left ,right。 2)右移指针right的同时使用sum记录指针right处的值,并判断sum的值是否满足要求&…...
Tuxera NTFS2023Mac强大的Mac读写工具
Mac用户在使用NTFS格式移动硬盘时,会遇到无法写入硬盘的情况。要想解决无法写入的问题,很多人选择使用Mac读写软件。面对市面上“众多”的读写硬盘软件,用户应该怎么选择呢?初次接触移动硬盘的伙伴可能不知道移动硬盘怎么和电脑连…...
ARM64 常见汇编指令学习 11 -- ARM 汇编宏 .macro 的学习
文章目录 ARM 汇编宏介绍ARM 汇编宏的使用 下篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 上篇文章:ARM64 常见汇编指令学习 10 – 无符号位域提取指令 BFXIL ARM 汇编宏介绍 在 ARM 汇编中,“.macro” 是用来定义一个宏的指…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...
