K8S资源介绍之configmap

1 configmap介绍

是什么:是K8S内置的一种存储卷,数据存储在etcd数据库中

应用场景:主要是存储应用的配置,实现配置与应分离,可以实现类似配置配置中心的功能

由于镜像是只读的特性,如果想要修改需要重新打镜像。但是每次打镜像都会带来繁琐的工作。如果说只是配置文件发生修改,完全没有必要打镜像,可以将配置文件定义为一个cm资源,然后将其挂载到容器的相应路径

  • configmap存在形式
    • 键值对形式
    • 类文件形式

2 configmap创建和删除

2.1 响应式创建configmap

创建一个类似mysql配置的cm

kubectl create cm my.cnf --from-literal=port=3306 --from-literal=socket=/tmp/mysql80.sock

[root@master231~]# kubectl describe cm my.cnf 
Name:         my.cnf
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
socket:
----
/tmp/mysql80.sock
port:
----
3306

BinaryData
====

Events:  <none

[root@master231~]# kubectl get cm my.cnf -o yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: my.cnf
  namespace: default
data:
  port: "3306"
  socket: /tmp/mysql80.sock

2.2 基于现有配置文件创建configmap

从已有的文件创建一个cm,比较便捷

1.先写一个mysql.conf配置文件

cat > /data/3306/my.cnf <<eof
[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8
[mysqld]
user=mysql
mysqlx=0
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
eof

2.基于文件创建

kubectl create cm mysql.conf --from-file=mysql.conf

3.查看文件内容,内容部分使用一个|引用。也可以手写yaml进行创建。

apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql.conf
  namespace: default
data:
  mysql.conf: |
    [mysql]
    socket=/tmp/mysql.sock
    default-character-set=utf8
    [mysqld]
    user=mysql
    mysqlx=0
    basedir=/usr/local/mysql
    datadir=/data/3306/data
    socket=/tmp/mysql.sock

2.3 键值对和类文件同时使用

键值对和类文件同时使用也是可以创建成功的

apiVersion: v1
kind: ConfigMap
metadata:
  name: my.cnf
  namespace: default
data:
  port: "3306"
  socket: /tmp/mysql80.sock
  mysql.conf: |
    mysql_user=root

    data_path=/data/mysql/data1
    index=true

2.4 占位符|和/说明

\表示下级字段原样输出

``/`表示将下级字段放在一行

1.编写一个cm配置

cat > << EOF
apiVersion: v1
kind: ConfigMap
metadata:
  name: test1
  namespace: default
data:
  mysql.conf: /
    [mysql]
    socket=/tmp/mysql.sock
    default-character-set=utf8
    [mysqld]
    user=mysql
    mysqlx=0
    basedir=/usr/local/mysql
    datadir=/data/3306/data
    socket=/tmp/mysql.sock
EOF

2.查看到全部内容在一行中

[root@master23102-configmap]# kubectl get cm test1 -o yaml
apiVersion: v1
data:
  mysql.conf: / [mysql] socket=/tmp/mysql.sock default-character-set=utf8 [mysqld]
    user=mysql mysqlx=0 basedir=/usr/local/mysql datadir=/data/3306/data socket=/tmp/mysql.sock
kind: ConfigMap
....
[root@master23102-configmap]# kubectl describe cm test1 
Name:         test1
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
mysql.conf:
----
/ [mysql] socket=/tmp/mysql.sock default-character-set=utf8 [mysqld] user=mysql mysqlx=0 basedir=/usr/local/mysql datadir=/data/3306/data socket=/tmp/mysql.sock

BinaryData
====

2.5 删除configmap的方式

方式1:

kubectl delete cm my.cnf mysql.conf

方式2:

删除对应的yaml配置文件

3 pod环境变量引用configmap的key

其实就是引用上一个01-cm-games.yaml 的键

一些容器容器运行时需要传递环境变量,这是就可以引用configmap中定义的key。

如:mysql容器,nacos容器…

1.创建cm

[root@master23102-configmap]# cat 01.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: db1.cnf
  namespace: default
data:
  port: "3306"
  socket: /tmp/mysql80.sock
  author: wzy666
  mysql.conf: |
    mysql_user=root

    data_path=/data/mysql/data1
    index=true

2.创建pod测试

[root@master231 configmaps]# cat 02-deploy-cm-env.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-cm-env
spec:
  replicas: 1
  selector:
    matchExpressions:
    - key: apps
      values:
      - xiuxian
      operator: In
  template:
    metadata:
      labels:
         apps: xiuxian
    spec:
      containers:
      - name: c1
        image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v3
        env:
        - name: author_name1
          # 指定值从哪里获取,从cm中获取
          valueFrom:
            configMapKeyRef:
              # 指定上一步创建的cm db1.cnf
              name: db1.cnf
              key: author

3.测试变量可以获取到,打印出来

kubectl exec deploy-cm-env-f449485f-hdxth -- /bin/sh -c 'echo ${author_name1}'
wzy666
[root@master23102-configmap]# kubectl exec eploy-cm-env-f449485f-hdxth -- /bin/sh -c 'env |grep author'
author_name1=wzy666

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913180.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法学习——背包问题总结

主要学习01背包和完全背包。 01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 装满问题 二维&#xff1a; 一维&#xff1a; 组…

算法分析中的渐进符号

在算法分析中,渐进符号用于描述算法在输入规模趋于无穷大时的运行时间或空间增长速率。主要的渐进符号包括 O O O、 Ω \Omega Ω、 Θ \Theta Θ、 o o o 和 ω \omega ω。这些符号各自描述了不同的增长界限,本文给出详细的定义和区别。 渐进符号 1. 大 O O O 符号(B…

计算机毕业设计Python+大模型农产品价格预测 ARIMA自回归模型 农产品可视化 农产品爬虫 机器学习 深度学习 大数据毕业设计 Django Flask

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

sql专题 之 三大范式

文章目录 背景范式介绍第一范式&#xff1a;属性不可再分第二范式第三范式注意事项 为什么不遵循后续的范式数据库范式在实际应用中会遇到哪些挑战&#xff1f; 背景 数据库的范式&#xff08;Normal Form&#xff09;是一组规则&#xff0c;用于设计数据库表结构以 减少数据冗…

Linux下进程链接结构,命令行参数,环境变量

bash 是一种 shell。在 Linux 系统中&#xff0c;当我们在终端输入命令时&#xff0c;通常是在一个 shell 环境下进行的。如果这个 shell 是 bash&#xff0c;那么所有命令行执行的命令都是 bash 的子进程。 1.Linux下进程链接结构 进程链接补充知识&#xff1a; 所有进程都…

FPGA实现串口升级及MultiBoot(八)四样错误实例演示

本文目录索引 一个指令和三种方式二种位流和四样错误Golden位流工程Watchdog的原理1、打开自己使用的Vivado版本的TCL SHELL2、进入multiboot_address_table.tcl 文件所在目录3、运行 multiboot_address_table.tcl 文件4、按照需求输入参数启动地址确定MultiBoot位流工程验证ex…

信息安全工程师(84)UNIX/Linux操作系统安全分析与防护

前言 UNIX/Linux操作系统&#xff0c;尤其是Linux&#xff0c;以其开放性、稳定性和安全性在服务器、桌面、嵌入式设备和超级计算机中占据重要地位。然而&#xff0c;没有任何操作系统可以百分之百地保证安全&#xff0c;UNIX/Linux也不例外。 一、UNIX/Linux操作系统安全分析 …

day08(单片机)时钟系统+定时器+PWM

目录 时钟系统定时器PWM 时钟系统 时钟基本概念 时钟源 晶体振荡器&#xff08;Crystal Oscillator&#xff09; RC振荡器&#xff08;Resistor-Capacitor Oscillator&#xff09; ​​​​​​​STM32U5时钟源 HSI(High Speed Internal) HSE(High Speed External) LSI(Low Spe…

【JavaEE初阶 — 多线程】内存可见性问题 volatile

1. 内存可见性问题 内存可见性的概念 什么是内存可见性问题呢&#xff1f; 当一个线程对共享变量进行了修改&#xff0c;那么另外的线程都是立即可以看到修改后的最新值。在Java中&#xff0c;可以借助 synchronized、volatile 以及各种Lock 实现可见性。如果我们将变量声…

通用特效Shader

一、通用特效Shader介绍 1.1 什么是通用特效材质 Unity支持SRP Batcher后&#xff0c;使用UberShader的优势非常明显。所谓&#xff0c;UberShader&#xff0c;即一个超级Shader&#xff0c;覆盖一类功能&#xff0c;而不是多个分散的小Shader&#xff0c;比如一个通用特效Sh…

spark-本地模式的配置和简单使用

python环境的安装 在虚拟机中&#xff0c;只能安装一个python的版本&#xff0c;若想要安装别的版本&#xff0c;则需要卸载之前的版本——解决方式&#xff0c;安装Anaconda 通过百度网盘分享的文件&#xff1a;Anaconda3-2021.05-Linux-x86_64.sh 链接&#xff1a;https://…

分享三个python爬虫案例

一、爬取豆瓣电影排行榜Top250存储到Excel文件 近年来&#xff0c;Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程序&#xff0c;用于抓取豆瓣电影Top250的相关信息&#xff0c;并将其保存为Excel文件。 获取网页数据的函数&#xff0c;包括以…

PyQt5 详细安装与配置教程及使用

文章目录 Part1&#xff1a;安装 PyQt5Part2&#xff1a;配置 PyQt5 的依赖工具 QtDesigner 和 PyUICPart3&#xff1a;使用QtDesigner设计界面Part4&#xff1a;使用PyUIC将设计好的界面转换为.py文件Part5&#xff1a;通过代码显示ui界面 Part1&#xff1a;安装 PyQt5 需要安…

ssm079基于SSM框架云趣科技客户管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;客户管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本客户管理系统就是在这…

C语言 | Leetcode C语言题解之第556题下一个更大元素III

题目&#xff1a; 题解&#xff1a; int nextGreaterElement(int n){int x n, cnt 1;for (; x > 10 && x / 10 % 10 > x % 10; x / 10) {cnt;}x / 10;if (x 0) {return -1;}int targetDigit x % 10;int x2 n, cnt2 0;for (; x2 % 10 < targetDigit; x2…

华为大变革?仓颉编程语言会代替ArkTS吗?

在华为鸿蒙生态系统中&#xff0c;编程语言的选择一直是开发者关注的焦点。近期&#xff0c;华为推出了自研的通用编程语言——仓颉编程语言&#xff0c;这引发了关于仓颉是否会取代ArkTS的讨论。本文将从多个角度分析这两种语言的特点、应用场景及未来趋势&#xff0c;探讨仓颉…

Linux:基本开发工具

一&#xff1a;编辑器vim 1.1vim的基本概念 vim其实有多重模式&#xff0c;这里我们主要了解vim的三种模式&#xff0c;分别是命令模式&#xff08;command mode&#xff09;,插入模式(Insert mode)和底行模式(lst line mode) 正常/普通/命令模式(Normal mode) …

第14张 GROUP BY 分组

一、分组功能介绍 使用group by关键字通过某个字段进行分组&#xff0c;对分完组的数据分别 “SELECT 聚合函数”查询结果。 1.1 语法 SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; 明确&#…

TVM计算图分割--BYOC框架

文章目录 BYOC架构算子标注单算子标注复合算子标注Cost-based PartitionCodegenCodegen for C代码生成流程概览代码生成工程实现实现CodegenC实现CSourceCodegenCodegen for JSON实现JsonCodegenRuntimeJSONRuntime参考随着后端设备数量激增,为达到较高的效果在这些设备上,对…

计算机毕业设计Python+卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…