Kubernetes 之 ConfigMap

Kubernetes 之 ConfigMap

ConfigMap 定义

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。通过使用 ConfigMap 可以将你的配置数据和应用程序代码分开。

ConfigMap 的创建

  1. 直接在命令行中指定 Config 参数创建,通过--from-literal指定参数

    kubectl create configmap mysql-config --from-literal=MYSQL_PORT=3306 --from-literal=MYSQL_ROOT_PASSWORD=passwd
    
    root@k8s-master1:~# kubectl get cm/mysql-config
    NAME           DATA   AGE
    mysql-config   2      10s
    root@k8s-master1:~# kubectl describe cm/mysql-config
    Name:         mysql-config
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>Data
    ====
    MYSQL_PORT:
    ----
    3306
    MYSQL_ROOT_PASSWORD:
    ----
    passwdBinaryData
    ====
    
  2. 通过指定文件创建,先创建一个nginx.conf文件,然后通过--from-file指令创建

    worker_processes  1;events {worker_connections  1024;
    }http {include       /etc/nginx/mime.types;default_type  application/octet-stream;server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}}
    }
    
    kubectl create configmap nginx-config --from-file nginx/nginx.conf
    
    root@k8s-master1:~# kubectl describe cm/nginx-config
    Name:         nginx-config
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>Data
    ====
    nginx.conf:
    ----
    worker_processes  1;\r
    \r
    events {\rworker_connections  1024;\r
    }\r
    \r
    http {\rinclude       /etc/nginx/mime.types;\rdefault_type  application/octet-stream;\r
    \rserver {\rlisten       80;\rserver_name  localhost;\r
    \rlocation / {\rroot   /usr/share/nginx/html;\rindex  index.html index.htm;\r}\r}\r
    }BinaryData
    ====Events:  <none>
    
  3. 通过指定文件夹创建,先创建一个nginx文件夹,再创建一个index.html文件,然后把index.html文件和nginx.conf文件移动到nginx文件夹下,然后通过--from-file指令创建

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Nginx Test</title>
    </head>
    <body>
    Hello World
    </body>
    </html>
    
    kubectl create configmap nginx-config --from-file nginx/
    
    root@k8s-master1:~# kubectl describe cm/nginx-config
    Name:         nginx-config
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>Data
    ====
    index.html:
    ----
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Nginx Test</title>
    </head>
    <body>
    Hello World
    </body>
    </html>
    nginx.conf:
    ----
    worker_processes  1;\r
    \r
    events {\rworker_connections  1024;\r
    }\r
    \r
    http {\rinclude       /etc/nginx/mime.types;\rdefault_type  application/octet-stream;\r
    \rserver {\rlisten       80;\rserver_name  localhost;\r
    \rlocation / {\rroot   /usr/share/nginx/html;\rindex  index.html index.htm;\r}\r}\r
    }BinaryData
    ====
    
  4. 通过 yaml 文件的方式创建

    kubectl create -f configmap-mysql-nginx.yaml
    
    root@k8s-master1:~# kubectl describe cm/configmap-mysql-nginx
    Name:         configmap-mysql-nginx
    Namespace:    default
    Labels:       app=configmap-mysql-nginx
    Annotations:  <none>Data
    ====
    MYSQL_PORT:
    ----
    3306
    MYSQL_ROOT_PASSWORD:
    ----
    passwd
    index.html:
    ----
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Nginx Test</title>
    </head>
    <body>Hello World
    </body>
    </html>nginx.conf:
    ----
    worker_processes  1;events {worker_connections  1024;
    }http {include       /etc/nginx/mime.types;default_type  application/octet-stream;server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}}
    }BinaryData
    ====Events:  <none>
    

ConfigMap 使用

apiVersion: v1
kind: Pod
metadata:name: pod-configmap
spec:containers:- name: configmap-testimage: busyboxcommand: [ "/bin/sh", "-c", "sleep 3600" ]env:- name: MYSQL_PORTvalueFrom:configMapKeyRef:name: configmap-mysql-nginxkey: MYSQL_PORT- name: MYSQL_ROOT_PASSWORDvalueFrom:configMapKeyRef:name: configmap-mysql-nginxkey: MYSQL_ROOT_PASSWORDenvFrom:- configMapRef:name: service-configvolumeMounts:- name: volume-configmapmountPath: /etc/nginxvolumes:- name: volume-configmapconfigMap:name: configmap-mysql-nginxrestartPolicy: Never
root@k8s-master1:~# kubectl exec -it pod-configmap -- /bin/sh
/ # env
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
HOSTNAME=pod-configmap
SHLVL=1
HOME=/root
MYSQL_ROOT_PASSWORD=passwd
SERVICE_NAME=configmap-test
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
MYSQL_PORT=3306
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
PWD=/
/ # ls -al /etc/nginx/
total 12
drwxrwxrwx    3 root     root          4096 Jun  1 02:16 .
drwxr-xr-x    1 root     root          4096 Jun  1 02:16 ..
drwxr-xr-x    2 root     root          4096 Jun  1 02:16 ..2024_06_01_02_16_52.4048032045
lrwxrwxrwx    1 root     root            32 Jun  1 02:16 ..data -> ..2024_06_01_02_16_52.4048032045
lrwxrwxrwx    1 root     root            17 Jun  1 02:16 MYSQL_PORT -> ..data/MYSQL_PORT
lrwxrwxrwx    1 root     root            26 Jun  1 02:16 MYSQL_ROOT_PASSWORD -> ..data/MYSQL_ROOT_PASSWORD
lrwxrwxrwx    1 root     root            17 Jun  1 02:16 index.html -> ..data/index.html
lrwxrwxrwx    1 root     root            17 Jun  1 02:16 nginx.conf -> ..data/nginx.conf
/ #

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的MySQL 数据库备份单循环与多循环shell脚本

本次测试为centos7.6 Linux环境下定时备份MySQL数据库。脚本使用mysqldump命令进行单次数据库备份&#xff0c;并将备份文件存储在指定的目录中。 MySQL 数据库备份单循环 #!/bin/bash DATE$(date %F_%H-%M-%S) HOSTlocalhost USER"your_username" PASS"your_…

(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型

第三部分 高级语言特性 第14章 泛型 ​ Object Pascal 提供的强类型检查对于提高代码的正确性非常有用&#xff0c;这也是我在本书中经常强调的一个主题。不过&#xff0c;强类型检查也可能带来麻烦&#xff0c;因为你可能想编写一个存储过程或类&#xff0c;对不同的数据类型…

32【Aseprite 作图】石头——拆解

1 石头先画轮廓&#xff0c;还是2 4 1 1 2 2 2&#xff0c;这样画一个圆的轮廓 或者2 1 1 3 5 1 1 1 1 2 4 &#xff0c; 2 最暗一层的黑色&#xff0c;做阴影部分&#xff0c;就是7 4 3 2 做最深的部分 各个地方画一些浅色的&#xff0c;做高光部分&#xff0c;上面的高光偏圆…

015、列表_应用场景

1.消息队列 如图所示,Redis的lpush+brpop命令组合即可实现阻塞队列,生产者客户端使用lrpush从列表左侧插入元素,多个消费者客户端使用brpop命令阻塞式的“抢”列表尾部的元素,多个客户端保证了消费的负载均衡和高可用性。 2.文章列表 每个用户有属于自己的文章列表,现…

前端WebSocket与WiFi:深度探索与实战应用

前端WebSocket与WiFi&#xff1a;深度探索与实战应用 在数字化时代&#xff0c;前端技术与网络通信的紧密结合为我们的生活带来了前所未有的便利。其中&#xff0c;WebSocket和WiFi作为前端网络通信的重要组成部分&#xff0c;更是引发了广泛关注。本文将从四个方面、五个方面…

收银系统源码-千呼新零售2.0【智慧供应链】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

FinalShell 配置SSH密钥登陆

转载请标明出处&#xff1a;http://blog.csdn.net/donkor_/article/details/139355489 文章目录 前言生成密钥服务器配置公钥本地配置私钥存储私钥FinalShell配置 总结 前言 本机FinalShell 配置SSH密钥登陆服务器&#xff0c;这样就不再需要使用密码进行登陆了。由于FinalSh…

【StableDiffusion秋叶包反斜杠问题】Failed to find xxx\sd-webui-aki-v4.8\...\xxx.pth

一、问题发生 1.在我额外安装预处理器时报错 意思是没办法找到有这么一个包&#xff08;但我已经把这个包扔进去了&#xff09; 完整报错&#xff1a; Failed to find S:\app_AI\stableDiffusion-webui-aki\sd-webui-aki-v4.8\extensions\sd-webui-controlnet\annotator\dow…

电机测试方法的介绍与功能实现(T测试方法)

目录 概述 1 理论介绍 2 实现原理 2.1 旋转式编码器原理 2.2 系统实现框图 2.3 测速原理 2.4 计算速度值 3 STM32Cube配置项目 3.1 软件版本信息 3.2 配置项目 4 代码实现 4.1 电机速度控制 4.2 速度计算函数 4.3 功能实现 5 测试 概述 本文主要介绍测试电机速…

LangGraph简介

LangGraph 概述及用法 LangGraph 是 LangChain 的一个扩展&#xff0c;旨在通过将步骤建模为图中的边缘和节点&#xff0c;构建具有大型语言模型&#xff08;LLMs&#xff09;的强大和有状态的多角色应用程序。LangGraph 提供了用于创建常见类型代理的高级接口&#xff0c;以及…

Vue项目运行页面禁止缩放【移动端和PC端都禁止缩放】解决方案

Vue项目运行页面禁止缩放【移动端和PC端都禁止缩放】解决方案&#xff0c;有的人手很J,总喜欢放大缩小&#xff0c;从而会导致页面错乱&#xff0c;以下是解决方案&#xff0c;简单有效 效果图PC&#xff1a;滚轮缩放和其他缩放都会禁止 移动端效果图&#xff1a;各种手机平板…

SSL发送邮件时如何配置客户端确保安全性?

怎么使用SSL安全协议通过AokSend发送加密的电子邮件&#xff1f; SSL是一种常用的加密通信协议&#xff0c;用于确保数据在客户端和服务器之间的安全传输。AokSend将讨论如何通过配置客户端确保SSL发送邮件的安全性&#xff0c;并介绍如何使用SSL安全协议通过AokSend发送加密的…

zibll-V7.7最新版2024完美破解授权可用(含授权教程)

最近这个正版安装包流出来了,试了一下用以前的绕过授权方法&#xff0c;一样可以授权。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89379057 更多资源下载&#xff1a;关注我。

使用Java进行数据分析和处理:应用在实际业务场景中的技术

在当今数据驱动的时代&#xff0c;数据分析和处理已经成为各行各业中不可或缺的一部分。Java作为一种广泛应用于企业级开发的编程语言&#xff0c;也在数据领域展现出了强大的能力。本文将探讨如何使用Java进行数据分析和处理&#xff0c;以及在实际业务场景中应用的技术。 ##…

力扣200. 岛屿数量(BFS)

Problem: 200. 岛屿数量 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义方向数组&#xff1a;定义一个方向数组 DIRECTIONS&#xff0c;表示上、下、左、右四个方向的移动。 2.获取网格的行数和列数同时初始化一个计数器 numIslands 用于记录岛屿的数量。 …

什么是 Redis 缓存?它解决了什么问题?怎么使用它?

前言 写在前面&#xff0c;让我们从 3 个问题开始今天的文章&#xff1a;什么是 Redis 缓存&#xff1f;它解决了什么问题&#xff1f;怎么使用它&#xff1f; 在笔者近 3 年的 Java 一线开发经历中&#xff0c;尤其是一些移动端、用户量大的互联网项目&#xff0c;经常会使用…

数学建模 —— 数学规划模型(5)

目录 一、数学规划 1.1 数学规划问题一般形式 二、常见规划模型 2.1 线性规划&#xff08;Linear Programming&#xff09; 2.1.1 定义 2.1.2 一般形式 2.1.3 标准形式 2.1.4 求解 2.2 整数规划&#xff08;Integer Programming&#xff09; 2.2.1 单目标规划 2.…

Mybatis学习之Spring boot整合Mybatis示例

文章目录 1.Mybatis是什么&#xff1f;2.整合SSM2.1 创建数据库表2.2 pom.xml2.3 启动入口2.4 web层2.5 service层2.6 dao层2.7 properties.yml 3.测试4.异常Invalid value type for attribute factoryBeanObjectType: java.lang.String5.总结 Spring SpringMVC Mybatis是现在…

nacos配置发布流程详解

1、安装必备环境&#xff1a; 首先&#xff0c;需要安装Java和Maven。Nacos是基于Java开发的&#xff0c;因此Java环境是必不可少的。同时&#xff0c;如果选择从源码部署Nacos&#xff0c;那么需要Maven来构建项目。 2、安装MySQL&#xff1a; Nacos支持使用MySQL作为外置数…

RT_thread nano移植Finsh

参考连接: https://blog.csdn.net/baseball214/article/details/131341722 移植的前提是,你已经有一个可以使用的nano功能. 1.将rtthread-nano-master\rt-thread\components文件复制到工程. 2.添加Finsh中的.c以及相关.h头文件路径 3.注释掉finsh_config.h文件中以下两个宏…