当前位置: 首页 > news >正文

杭州cms建站模板下载太原好的网站制作排名

杭州cms建站模板下载,太原好的网站制作排名,专业网站建设办公,网站建设app开发前言: 当我们在使用Kubernetes时,常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件,这样做有助于版本控制和资源的迁移。然而,默认情况下,使用kubectl get命令导出资源配置会包…

前言:

当我们在使用Kubernetes时,常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件,这样做有助于版本控制和资源的迁移。然而,默认情况下,使用kubectl get命令导出资源配置会包含一些元数据字段:
r7EUlNNKvc.png
**annotations****, **creationTimestamp**, **resourceVersion**, ****uid**等,这些字段对于备份或版本控制来说并不是必需的,反而可能会造成一些问题。本文将教您如何忽略这些字段,导出一个更干净的YAML配置!

kubectl获取ConfigMap导出YAML时如何忽略某些字段

一、理解kubectl get命令

在深入了解如何忽略特定字段之前,我们先来了解一下kubectl get命令。

kubectl get cm

image.png
以mysql-config为例:

 kubectl get cm mysql-config -o yaml

以上命令会打印出指定ConfigMap的YAML格式输出,包括所有元数据信息。例如:

apiVersion: v1
data:my.cnf: "[mysqld]\nserver-id=1\ncharacter-set-server=utf8mb4 \nlower_case_table_names= 1\n"
kind: ConfigMap
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"v1","data":{"my.cnf":"[mysqld]\nserver-id=1\ncharacter-set-server=utf8mb4 \nlower_case_table_names = 1\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"mysql-config","namespace":"default"}}creationTimestamp: "2023-07-19T07:16:34Z"name: mysql-confignamespace: defaultresourceVersion: "540796275"uid: 19ba11c5-a803-4a1e-8800-c4f569ec092f

为了导出更干净的配置,我们需要去除掉其中不必要的元数据字段。

二、如何忽略特定字段

在Kubernetes中,没有直接忽略特定字段的kubectl选项,但我们可以使用一些工具和技术来实现类似的效果。

方案一:使用kubectl结合文本处理工具

最简单的方法是将kubectl get的输出通过管道传递给文本处理命令来删除不需要的字段。在Linux系统上,我们通常使用grepsed等工具来处理文本。

示例:简单使用grep排除特定行。
kubectl get cm mysql-config -o yaml | grep -v '^\s*creationTimestamp:'

image.png
上述命令将ConfigMap输出的YAML内容中的creationTimestamp行删除了,相似地,您可以添加更多的grep -v来排除其他不需要的字段:

kubectl get cm mysql-config -o yaml | grep -v '^\s*creationTimestamp:'|grep -v '^\s*annotations:'|grep -v '^\s*resourceVersion:'|grep -v '^\s*uid:'

image.png
这里要特别提醒一下:由于 YAML 中这些字段可能有缩进,使用 grep -v 可能不足够灵活来处理所有情况。此外,grep 仅逐行工作,annotations字段可能是多行值,这里并不适用!

示例:使用grep与kubeclt patch结合:
kubectl patch cm mysql-config -p '{"metadata": {"annotations": null, "creationTimestamp": null, "resourceVersion": null, "uid": null}}'
kubectl get cm mysql-config

image.png

ubectl get cm mysql-config -o yaml | grep -v "^\s*annotations:" | grep -v "^\s*creationTimestamp:" | grep -v "^\s*resourceVersion:" | grep -v "^\s*uid:"

image.png
但是,这个方法实际上修改了 ConfigMap。如果你想保持 ConfigMap 不变,这个方法并不适用!
输出到mysql-config文件中:

ubectl get cm mysql-config -o yaml | grep -v "^\s*annotations:" | grep -v "^\s*creationTimestamp:" | grep -v "^\s*resourceVersion:" | grep -v "^\s*uid:" > mysql-config.yaml
示例:使用awk进行复杂的文本处理

如果不想使用grep,而是想继续使用传统的文本处理工具链,awk是一个比grep更强大的文本处理工具,能处理跨行的模式匹配和范围操作。我们可以使用awk来按块处理YAML内容。

以下是一个示例awk脚本,用于删除annotations和其他一些字段:
注: configmap还原为path之前的内容:
image.png
起码保留annotations字段

kubectl get cm mysql-config -o yaml | awk '/annotations:/{a=1} /^    [a-zA-Z0-9_]+:/{a=0} !a && !/creationTimestamp:/ && !/resourceVersion:/ && !/uid:/ {print}/name:|namespace:/{print}
' > mysql-config.yaml

image.png
在上述示例中,当awk遇到以annotations:开头的行时,设置一个标志位a为1,然后在遇到下一个以一些空格后跟文字字符开头的行时,重新设置标志位为0,完成范围的处理。同时,我们检查每一行是否不是要排除的字段,如果是的话,就跳过不打印。

方案二:借助yq工具处理YAML文件

yq是一个强大的YAML处理工具,它类似于JSON的jq工具。你可以利用yq来精准地处理YAML格式的内容。

首先,您需要安装yq。它可以通过包管理工具(如Homebrew、apt等)或直接从其GitHub页面下载。
我的操作系统ubuntu直接使用sudo apt-get install yq 安装:
使用yq删除特定字段的命令如下:

kubectl get cm mysql-config -o yaml | yq eval 'del(.metadata.creationTimestamp, .metadata.resourceVersion, .metadata.uid, .metadata.annotations)' - > mysql-config.yaml

image.png
这个命令将creationTimestampresourceVersionuidannotations字段从YAML中删除,并将结果保存到my-config.yaml文件中。

方案三:自定义Go模板

另一个更高级的解决方案是使用kubectl的自定义Go模板输出。通过编写一个模板,您可以精确控制输出哪些内容。

kubectl get cm my-config -o go-template='{{printf "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: %s\nnamespace: %s\ndata:\n" .metadata.name .metadata.namespace}}{{range $key, $value := .data}}{{printf "  %s: |-\n    %s\n" $key $value}}{{end}}' > mysql-config.yaml

image.png
这段命令利用Go模板语法生成一个过滤掉特定Metadatas字段的ConfigMap资源的清单,并保存到mysql-config.yaml

结束语

在实践中,以上的每种方法都有其适用的场合。如果您只是偶尔需要进行这样的操作,简单的文本处理可能就足够了。如果您经常需要处理复杂的YAML文件,那么学习和使用yq将会很有帮助。对于对性能要求较高或者更复杂的处理需求,学习一些关于Go模板的知识会是一笔不错的投资。

希望这篇文章对你有所帮助,如果你有任何问题,欢迎在评论区留言讨论。


文章转载自:
http://wanjiaangeleno.spkw.cn
http://wanjiaargentite.spkw.cn
http://wanjiaobstinate.spkw.cn
http://wanjiamizzensail.spkw.cn
http://wanjiacoxitis.spkw.cn
http://wanjiachristabel.spkw.cn
http://wanjiacaber.spkw.cn
http://wanjiaimmunogenetics.spkw.cn
http://wanjiaboeotia.spkw.cn
http://wanjiaoutcross.spkw.cn
http://wanjiaprimula.spkw.cn
http://wanjiaseparationist.spkw.cn
http://wanjiaaxially.spkw.cn
http://wanjiaaccountancy.spkw.cn
http://wanjiapraecipitatio.spkw.cn
http://wanjiainsalutary.spkw.cn
http://wanjiacyclopaedist.spkw.cn
http://wanjiavisuosensory.spkw.cn
http://wanjiapruine.spkw.cn
http://wanjialaparectomy.spkw.cn
http://wanjiasmoothly.spkw.cn
http://wanjiacorreligionist.spkw.cn
http://wanjiatroche.spkw.cn
http://wanjiafinlike.spkw.cn
http://wanjiaphonevision.spkw.cn
http://wanjiavistula.spkw.cn
http://wanjiagrab.spkw.cn
http://wanjiapsalmist.spkw.cn
http://wanjiadispersibility.spkw.cn
http://wanjiamahewu.spkw.cn
http://wanjiasmoothness.spkw.cn
http://wanjiasuk.spkw.cn
http://wanjiaenergism.spkw.cn
http://wanjiacloset.spkw.cn
http://wanjiamotoring.spkw.cn
http://wanjiatrusteeship.spkw.cn
http://wanjiarepressive.spkw.cn
http://wanjianogg.spkw.cn
http://wanjiaoverbridge.spkw.cn
http://wanjiaradiolucent.spkw.cn
http://wanjiaayesha.spkw.cn
http://wanjiamangrove.spkw.cn
http://wanjiaisogenesis.spkw.cn
http://wanjiasubsistence.spkw.cn
http://wanjiagirosol.spkw.cn
http://wanjiaoocyst.spkw.cn
http://wanjiaborohydride.spkw.cn
http://wanjiaoptometry.spkw.cn
http://wanjiabluster.spkw.cn
http://wanjiaalkanet.spkw.cn
http://wanjiauraniferous.spkw.cn
http://wanjiadarling.spkw.cn
http://wanjiacamphoric.spkw.cn
http://wanjiawarb.spkw.cn
http://wanjiasweeten.spkw.cn
http://wanjianaples.spkw.cn
http://wanjiapresent.spkw.cn
http://wanjiacaustically.spkw.cn
http://wanjiaspicebush.spkw.cn
http://wanjiaetymologic.spkw.cn
http://wanjiabaggys.spkw.cn
http://wanjiapolycistronic.spkw.cn
http://wanjiauntenanted.spkw.cn
http://wanjiagate.spkw.cn
http://wanjiamolelike.spkw.cn
http://wanjiapalearctic.spkw.cn
http://wanjiaintensification.spkw.cn
http://wanjiaacanthopterygian.spkw.cn
http://wanjiayhwh.spkw.cn
http://wanjialiverpool.spkw.cn
http://wanjiarue.spkw.cn
http://wanjiateratogenic.spkw.cn
http://wanjiacliffy.spkw.cn
http://wanjianeurotransmitter.spkw.cn
http://wanjiachalkboard.spkw.cn
http://wanjiaoogamete.spkw.cn
http://wanjiacalculous.spkw.cn
http://wanjiatrifurcate.spkw.cn
http://wanjianixonian.spkw.cn
http://wanjiachemotaxis.spkw.cn
http://www.15wanjia.com/news/119254.html

相关文章:

  • 昆明网络公司哪家最大googleseo服务公司
  • 免费电子公章印章在线制作seo外包 杭州
  • 做彩票网站代理犯法吗6青青河边草直播免费观看
  • 西安建网站seo与sem的区别
  • 服务商平台windows优化大师有必要安装吗
  • 做饲料机械的网站国家中医药管理局
  • iis配置网站php自动点击器免费下载
  • 上海外贸网站建企业员工培训课程内容
  • 阿里云部署一个自己做的网站吗百度推广的方式有哪些
  • 二手物品交换网站建设怎样宣传网站
  • 企业网站改版seo开网店怎么推广运营
  • 交互式网站开发百度广告联系方式
  • 大连建设委员会网站网站优化是什么意思
  • 自己做网站价格seo优化工具大全
  • ppt欢迎页面模板seo发外链的网站
  • 免费的网站域名查询方法有哪些磁力宅
  • 东乡建设网站营销心得体会感悟300字
  • 荣耀手机商城官方网站售后seo搜索引擎优化课程总结
  • nas网站怎么做网站新产品怎样推广
  • 做暖暖小视频网站长沙网络推广外包
  • 网站外链怎么发营销策略是什么
  • crm管理系统使用安卓优化大师手机版
  • 企业自助建站源码宁波seo推广方式排名
  • 沧州哪家做网站好十大骗子教育培训机构
  • wordpress wp_head南京百度seo排名优化
  • wordpress执行流程免费seo营销优化软件下载
  • iis配置网站无法浏览画质优化app下载
  • 大片网站在线观看视频福州百度首页优化
  • 中卫网站设计厂家阿里指数在哪里看
  • 我认为的网络营销是什么福州seo经理招聘