Kubernetes 杂谈之 configmap \n的问题

一  configmap \n的问题

涉及的'知识点': configmap资源对象、yaml'|- |+ >'语法目的: 彻底解决'YAML 多行文本'格式化'丢失'问题

①   ConfigMap 进阶

configmap 的data中的文件内容格式错乱

ConfigMap多行格式

场景:将业务部署到k8s时,'应用的配置文件'通常写在ConfigMap中,然后以文件的形式挂载到Pod中kubectl create configmap -h直接使用'字符串'进行创建,通过 --from-literal 参数传递配置信息,同样这个参数可以使用'多次'

Resource Quotas | Kubernetes   configmap个数限制案例

大部分Kubernetes版本'默认'开启了ResourceQuota'低版本'在APIServer配置文件'--enable-admission-plugins'参数中添加ResourceQuota开启个数和大小限制ResourceQuotas 会限制'命名空间'中 configmap 的'数量'思考: 但有没有这样的选项来限制'单个' configmap 的 'size'大小?目的: 不希望某些用户开始将'大型文本文件'作为'配置'映射上传ConfigMap 的大小'默认限制'为 '1MB'解读: 1、实际ConfigMap 或 Secret 对象上都'没有'硬限制。2、然而'etcd'端有 '1MB' 的限制,这是 Kubernetes '存储其对象'的地方

 

1、主程序是'非pid=1'的常驻进程     --> 多个命令通过';'进行串连2、'健康检查'常驻进程的'port端口'  --> '必须'3、每'10s'检查'配置文件'的md5值,如果跟上次不一致就进行'reload|restart'

configmap的回车被转义成\n

②   yaml 特殊符号语法

在">"符号应用的'多行文本'值中,所有'换行符'都会被视为'空格'> 右尖括号,用来表示'折叠换行',只有'空白行'才会被识别为'换行',原来的换行符都会被转换成'空格'竖线符'|',这在 yaml 中表示保留换行,每行的'缩进和行尾空白'都会被'去掉',而额外的缩进会被保留"|+": 保留'每行尾部的换行符\n'的同时,'保留'内容结尾处的换行符\n"|-": 保留'每行尾部的换行符\n'的同时,'删除'内容结尾处的换行符\n"|-":保留'行尾'换行符,但不保留'字符末尾'的换行符">+":将行尾换行符'替换'成空格,保留'字符末尾'的换行符">-":将行尾换行符替换成空格,'不保留'字符末尾的换行符换行主要使用 | 和 > , '|'保留行尾'换行符', '>'将行尾换行符替换成'空格'保留字符末尾的换行使用'+',删除字符末尾的换行使用'-',一般用于与'|'和'>'组合使用K8S的yaml文件'只允许'有'空格'

jq杂谈

yaml 官方多行文本格式

说明: 补充一些'知识点'与本文关系不大

③  \n 问题引入

通过一个'对比实验'说明如何彻底'解决 YAML 多行文本格式化丢失'问题备注: 不小心在'字符结尾换行前'多打了个'空格'

 

vimdiff ceshi{,1}.yml   '对比二者的差异性'

++++++++++++++++  "问题思考"  ++++++++++++++++现象: configmap 的data中的文件内容'格式'错乱,可读性不强,不便于'edit'在线编辑"推荐": kubectl create configmap my-config --from-file=path/to/file细节: 通过'file'文件的形式创建'cm',会产生'|'形式备注: cm中推荐'配置文件'的形式引入,而不是直接将'相关配置数据'写入cm资源对象中,便于管理更新进阶:  推荐'配置文件'也纳入'git'等版本控制中,跟'代码'放在一起一块管理++++++++++++++++  "file中应该怎么操作"  ++++++++++++++++# 使用以下方法删除'尾随'空格
sed -i -E 's/[[:space:]]+$//g' file# 使用空格'替换'制表符
sed -i 's/\t/    /g' file思考: nginx的配置文件'nginx.conf'

解决策略

④  结论

+++++++++ "主要是data中" +++++++++1、文本'每行'不要以'空格'结尾2、不要'换行'前再'带个空格'3、不要在文本中添加'不可见'特殊字符推荐: 将文本拷贝并'格式化yaml文本',可使用在线格式化工具

YAML在线格式化

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

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

相关文章

牛客禁用题:求阶乘

思路&#xff1a;在新类中使用全局变量进行运算&#xff0c;在主类中定义新类数组&#xff0c;通过构造函数的调用次数返回阶乘 #include <type_traits> class add{public:static int count;static int tmp;add(){countcounttmp;tmp;} }; int add::count0; int add::t…

opencascade c#例程解析

1.编译 将msvc.bat文件拖入vs2022的x64 native tools&#xff0c;即可 2.about.xaml <Windowxmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"x:Class"IE_WPF_WinForms…

欧姆龙PLC使用

安装开发软件 Sysmac Studio 1_7_20》1.5升级包》1.29升级包 许可证 6002-2091-3336-5781 项目启动 1、新建项目&#xff0c;选择对应PLC和开发软件版本号 2、自动创建项目后&#xff0c;可以设置通讯&#xff0c;如OPC和CIP CIP启动与配置 更改IP地址 3、添加全局变量&a…

Laravel Octane 和 Swoole 协程的使用分析

之前在工作中使用 Laravel Octane 的 concurrently 处理并发时&#xff0c;发现在队列和定时任务中不会触发并发效果。经过分析&#xff0c;作了如下猜测&#xff1a;队列和定时任务都属于一个独立的进程&#xff0c;与 Octane 服务无关&#xff0c;而 Octane concurrently 恰恰…

【开源】JAVA+Vue.js实现APK检测管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…

策略模式 详解 设计模式

策略模式 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装到具有共同接口的独立类中&#xff0c;并且使它们可以相互替换。 策略模式可以让算法的变化独立于使用算法的客户端。 主要解决&#xff1a; 在有多种算法相似的情况下&#…

物联网主机:为智能交通赋能

物联网&#xff08;IoT&#xff09;技术的发展为智能交通领域带来了许多创新的解决方案。而在物联网应用中&#xff0c;物联网主机起着关键的作用。本文将为大家介绍一款名为E6000的物联网主机&#xff0c;它是一种多协议、多接口的物联网主机&#xff0c;为智能交通系统的建设…

二维码门楼牌管理系统技术服务:革新城市标识管理的新篇章

文章目录 前言一、二维码门楼牌管理系统的诞生背景二、二维码门楼牌管理系统的技术优势三、二维码门楼牌管理系统的应用前景四、面临的挑战与问题五、结语 前言 在数字化、智能化的时代背景下&#xff0c;二维码门楼牌管理系统作为一种创新的技术服务&#xff0c;正逐渐改变着…

线程池学习

github看到一个项目&#xff08;GitHub - markparticle/WebServer: C Linux WebServer服务器&#xff09;&#xff0c;内部使用的一个线程池看着不错&#xff0c;拿来学习一下。 /** Author : mark* Date : 2020-06-15* copyleft Apache 2.0*/ #ifndef THREADPO…

【Excel PDF 系列】EasyExcel + iText 库实现 Excel 转换 PDF

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言转换前后效果引入 pom 配置代码实现定义 ExcelDataVo 对象主方法EasyExcel 监听器 前言 最近遇到生成 …

【Android开发】01-第一个Android APP

一、改MainActivity class MainActivity : AppCompatActivity() {/*因Android的app有生命周期&#xff0c;故入口是OnCreate而不是main函数*/override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main…

Java教程:SpringBoot项目如何对接Nacos实现服务发现治理,配置管理

–Nacos大家都知道&#xff0c;不懂的可以去官网或者网上查阅一下&#xff0c;本次给大家讲解一下如何在SpringBoot项目中引入Nacos服务来进行服务治理与发现&#xff0c;配置管理等&#xff0c;在微服务当中是必不可少的&#xff0c;各个模块之间可以通过Feign远程调用&#x…