本文主要是介绍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在线格式化
这篇关于Kubernetes 杂谈之 configmap \n的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!