ConfigMap/Secret:配置、定制我的应用

news2024/11/24 22:55:16

首先你要知道,应用程序有很多类别的配置信息,但从数据安全的角度来看可以分成两类:

  • 一类是明文配置,也就是不保密,可以任意查询修改,比如服务端口、运行参数、文件路径等等。
  • 另一类则是机密配置,由于涉及敏感信息需要保密,不能随便查看,比如密码、密钥、证书等等。

这两类配置信息本质上都是字符串,只是由于安全性的原因,在存放和使用方面有些差异,所以 Kubernetes 也就定义了两个 API 对象,ConfigMap 用来保存明文配置,Secret 用来保存秘密配置。

因为在 ConfigMap 里的数据都是 Key-Value 结构,所以 --from-literal 参数需要使用 k=v 的形式。

把 YAML 样板文件修改一下,再多增添一些 Key-Value,就得到了一个比较完整的 ConfigMap 对象:

apiVersion: v1
kind: ConfigMap
metadata:
  name: info

data:
  count: '10'
  debug: 'on'
  path: '/etc/systemd'
  greeting: |
    say hello to kubernetes.

Secret 对象就会容易很多,它和 ConfigMap 的结构和用法很类似,不过在 Kubernetes 里 Secret 对象又细分出很多类,比如:

  • 访问私有镜像仓库的认证信息
  • 身份识别的凭证信息
  • HTTPS 通信的证书和私钥
  • 一般的机密信息(格式由用户自行解释)

Secret 对象大概是这个样子:

apiVersion: v1
kind: Secret
metadata:
  name: user

data:
  name: cm9vdA==

Secret 对象第一眼的感觉和 ConfigMap 非常相似,只是“kind”字段由“ConfigMap”变成了“Secret”,后面同样也是“data”字段,里面也是 Key-Value 的数据。

这串“乱码”就是 Secret 与 ConfigMap 的不同之处,不让用户直接看到原始数据,起到一定的保密作用。

因为 ConfigMap 和 Secret 只是一些存储在 etcd 里的字符串,所以如果想要在运行时产生效果,就必须要以某种方式“注入”到 Pod 里,让应用去读取。在这方面的处理上 Kubernetes 和 Docker 是一样的,也是两种途径:环境变量和加载文件。

 从这张图你就应该能够比较清楚地看出 Pod 与 ConfigMap、Secret 的“松耦合”关系,它们不是直接嵌套包含,而是使用“KeyRef”字段间接引用对象,这样,同一段配置信息就可以在不同的对象之间共享。

Kubernetes 为 Pod 定义了一个“Volume”的概念,可以翻译成是“存储卷”。如果把 Pod 理解成是一个虚拟机,那么 Volume 就相当于是虚拟机里的磁盘。

在 Pod 里挂载 Volume 很容易,只需要在“spec”里增加一个“volumes”字段,然后再定义卷的名字和引用的 ConfigMap/Secret 就可以了。要注意的是 Volume 属于 Pod,不属于容器,所以它和字段“containers”是同级的,都属于“spec”。

把“volumes”和“volumeMounts”字段都写好之后,配置信息就可以加载成文件了。

 以 Volume 的概念统一抽象了所有的存储,不仅现在支持 ConfigMap/Secret,以后还能够支持临时卷、持久卷、动态卷、快照卷等许多形式的存储,扩展性非常好。

此文章为7月Day14学习笔记,内容来源于极客时间《Kubernetes入门实战课》,推荐该课程。

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

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

相关文章

VTK 种子小部件 SeedWidget

Part1 vtkSeedWidget介绍 vtkSeedWidget 用于在场景中放置多个种子点。种子点可用于诸如连通性, 区域生长分割算法之,分割等。 效果图: vtkSeedWidget默认交互操作: 1. 鼠标点击widget上空白位置放置种子点 2. 鼠标移入种子点&am…

【测试开发】测试用例的设计方法

目录 一. 测试用例的基本要素 二. 测试用例的设计方法 1. 测试用例设计的万能公式 水杯测试用例 2. 基于需求的设计方法 邮箱注册测试用例 3. 等价类方法 有效等价类和无效等价类 等价类思想设计测试用例步骤 4. 边界值方法 边界值思想设计测试用例步骤 5. 判定表方法…

51单片机的智能交通控制系统【含仿真+程序+演示视频带原理讲解】- 未完稿

51单片机的智能交通控制系统【含仿真程序演示视频带原理讲解】 1、系统概述2、核心功能3、仿真运行及功能演示4、程序代码 1、系统概述 该系统由AT89C51单片机、LED灯组、数码管组成。通过Protues对十字路口红绿灯控制逻辑进行了仿真。 每个路口包含了左转、右转、直行三条车道…

SpringCloud Alibaba——Nacos1.x作为注册中心的原理

目录 一、原理二、原理步骤图解 一、原理 使用Http发送注册查询服务提供方列表定时拉取 (每10秒)检测到服务提供者异常,基于UDP协议推送更新定时心跳 (5秒),检测服务状态定时心跳任务检查集群数据同步任务使用Distro 二、原理步骤图解 Nacos1.x作为注…

python的浅拷贝和深拷贝

1、结论 python中的拷贝有以下三种 变量的赋值操作 只是形成两个变量,实际上还是指向同一个对象 浅拷贝 Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象 深拷贝 使用co…

【C++】开源:Web文件服务器

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍开源项目——Web文件服务器。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#x…

代码随想录day17

110. 平衡二叉树 首先是明白什么是平衡二叉树: 一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 然后,区别二叉树的高度和深度: 二叉树的高度:从叶子节点到根节点 二叉树的…

【C语言】多组输入

C系列文章目录 目录 C系列文章目录 一、什么是多组输入? 二、如何使用多组输入 2.1,试题举例讲解 2.2,错误解法 2.3,我们实现多组输入的思路 2.4,第一种正确的解法 2.5,第二种正确的解法 2.6&…

Exchange 服务器监控工具

Microsoft Exchange Server 是个消息与协作系统,提供了通常所需要的全部邮件服务功能,可以被用来构架应用于企业、学校的邮件系统或免费邮件系统。包括从电子邮件、会议安排、团体日程管理、任务管理、文档管理、实时会议和工作流等丰富的协作应用&#…

基于PyQt5的图形化界面开发——打砖块

目录 0. 前言1. 砖块类定义2. 挡板类定义3. 碰撞检测4. 小球和游戏初始化5. 完整代码6. 运行效果演示7. Pyinstaller 编译exe程序PyQt5 0. 前言 本文使用 PyQt5实现一个打砖块小游戏 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Pyt…

自学成为一名顶级黑客(网络安全)

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 行为:从编程开始掌握,前端后端、通信协议、什么都学。 缺点:花费时间太长、实际向安全过渡后可用到的关键知识并不多。…

加密与解密 解密篇 逆向分析技术 (一) 栈/调用约定

目录 逆向是什么 32位软件逆向技术 1.启动函数 2.函数 函数的识别 函数的参数 利用栈进行传递 下面是通过esp来寻址 通过寄存器来传递参数 例子 例子 函数的返回值 例子 例子 逆向是什么 将可执行程序反汇编 通过分析反汇编代码来理解其代码功能(各个…

慢速减压控制技术在预防同步辐射光源和原位透射电镜氮化硅窗口膜真空中破裂的应用

摘要:氮化硅薄膜窗口广泛应用于同步辐射光源中的扫描透射软X射线显微镜和原位透射电镜,但氮化硅薄膜只有几百纳米的厚度,很容易因真空抽取初期的快速压差变化造成破裂。为此,本文提出了线性缓变压力控制解决方案,即控制…

【小数据处理】从日志中获取json数据的处理

写在头上 本次分析的数据来源是SpringBoot服务输出的logback日志。具体配置参考: 处理工具:Notepad v7.6。处理的日志内容不易过大,Notepad能打开电脑不卡最好(100M以内吧)。如果实在过大,先从日志源头进行截取&…

【javaEE面试题(五)在JMM(Java Memory Model (Java 内存模型))下谈volatile的作用】【保证内存可见 和 指令有序】

volatile的作用 JMM下volatile作用 volatile 能保证内存可见性 volatile 修饰的变量, 能够保证 “内存可见性”. 代码在写入 volatile 修饰的变量的时候 改变线程工作内存中volatile变量副本的值将改变后的副本的值从工作内存刷新到主内存 代码在读取 volatile 修饰的变量的时…

微信小程序上线与发布图文步骤操作

1.上传代码 打开微信小程序,在微信开发者工具的工具栏中单击“上传”按钮,页面中弹出提示框,根据提示填写相应的信息,然后单击“上传”按钮,即可上传代码。 2.查看上传代码之后的版本 登录微信小程序管理后台&…

【docker】部署svn服务器,docker安装部署svn服务器

话不多说直接上步骤! 1.下载镜像,创建容器 # 下载镜像 docker pull elleflorio/svn-server # 创建svn仓库目录,进入svn仓库目录 mkdir -p /var/svn # 创建svn服务容器,把容器中的svn仓库映射到本机,并映射3690端口 d…

基于深度学习的高精度安全帽及背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度安全帽及背心检测识别系统可用于日常生活中或野外来检测与定位安全帽及背心目标,利用深度学习算法可实现图片、视频、摄像头等方式的安全帽及背心目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系…

动手学深度学习——线性回归(原理解释+代码详解)

目录 1、线性回归2、线性回归模型2.1 线性模型2.2 损失函数2.2.1 平方差损失函数2.2.2 整个数据集上的损失函数 2.3 随机梯度下降2.4 用模型进行预测 3、线性回归的简单实现3.1 生成数据集3.2 读取数据集3.3 初始化模型参数3.4 定义模型3.5 定义损失函数3.6 定义优化算法3.7 训…

H3C-Cloud Lab实验-OSPF配置实验

一、实验拓扑图 实验需求: 1、按照图示配置 IP 地址 2、按照图示分区域配置 OSPF ,实现全网互通 3、为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域 4、掌握OSPF初始化流程、路由表学习的过…