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

简单响应式网站用手机制作网站

简单响应式网站,用手机制作网站,手机怎么打开微信网站,网站绿标怎么做前言#xff1a; 当我们在使用Kubernetes时#xff0c;常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件#xff0c;这样做有助于版本控制和资源的迁移。然而#xff0c;默认情况下#xff0c;使用kubectl get命令导出资源配置会包…前言 当我们在使用Kubernetes时常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件这样做有助于版本控制和资源的迁移。然而默认情况下使用kubectl get命令导出资源配置会包含一些元数据字段 如**annotations****, **creationTimestamp**, **resourceVersion**, ****uid**等这些字段对于备份或版本控制来说并不是必需的反而可能会造成一些问题。本文将教您如何忽略这些字段导出一个更干净的YAML配置 kubectl获取ConfigMap导出YAML时如何忽略某些字段 一、理解kubectl get命令 在深入了解如何忽略特定字段之前我们先来了解一下kubectl get命令。 kubectl get cm以mysql-config为例 kubectl get cm mysql-config -o yaml以上命令会打印出指定ConfigMap的YAML格式输出包括所有元数据信息。例如 apiVersion: v1 data:my.cnf: [mysqld]\nserver-id1\ncharacter-set-serverutf8mb4 \nlower_case_table_names 1\n kind: ConfigMap metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{apiVersion:v1,data:{my.cnf:[mysqld]\nserver-id1\ncharacter-set-serverutf8mb4 \nlower_case_table_names 1\n},kind:ConfigMap,metadata:{annotations:{},name:mysql-config,namespace:default}}creationTimestamp: 2023-07-19T07:16:34Zname: mysql-confignamespace: defaultresourceVersion: 540796275uid: 19ba11c5-a803-4a1e-8800-c4f569ec092f 为了导出更干净的配置我们需要去除掉其中不必要的元数据字段。 二、如何忽略特定字段 在Kubernetes中没有直接忽略特定字段的kubectl选项但我们可以使用一些工具和技术来实现类似的效果。 方案一使用kubectl结合文本处理工具 最简单的方法是将kubectl get的输出通过管道传递给文本处理命令来删除不需要的字段。在Linux系统上我们通常使用grep、sed等工具来处理文本。 示例简单使用grep排除特定行。 kubectl get cm mysql-config -o yaml | grep -v ^\s*creationTimestamp:上述命令将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:这里要特别提醒一下由于 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-configubectl get cm mysql-config -o yaml | grep -v ^\s*annotations: | grep -v ^\s*creationTimestamp: | grep -v ^\s*resourceVersion: | grep -v ^\s*uid:但是这个方法实际上修改了 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之前的内容: 起码保留annotations字段 kubectl get cm mysql-config -o yaml | awk /annotations:/{a1} /^ [a-zA-Z0-9_]:/{a0} !a !/creationTimestamp:/ !/resourceVersion:/ !/uid:/ {print}/name:|namespace:/{print}mysql-config.yaml在上述示例中当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这个命令将creationTimestamp、resourceVersion、uid和annotations字段从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这段命令利用Go模板语法生成一个过滤掉特定Metadatas字段的ConfigMap资源的清单并保存到mysql-config.yaml。 结束语 在实践中以上的每种方法都有其适用的场合。如果您只是偶尔需要进行这样的操作简单的文本处理可能就足够了。如果您经常需要处理复杂的YAML文件那么学习和使用yq将会很有帮助。对于对性能要求较高或者更复杂的处理需求学习一些关于Go模板的知识会是一笔不错的投资。 希望这篇文章对你有所帮助如果你有任何问题欢迎在评论区留言讨论。
http://www.pierceye.com/news/830729/

相关文章:

  • 响应式视频网站什么是权重高的网站
  • 做教育网站挣钱我的网站域名是什么
  • django 网站开发实例哪里可以检测胎儿性别
  • 刷排名凡搜网站宝微信5000人接推广费用
  • 网站优化外包服务专业网站建设服务商
  • 江西企业网站建设费用wordpress正在执行例行维护_请一分钟后回来.
  • 苏宁推客如何做网站创建一个网站的步骤
  • 优化网站广告优化东莞美食网站建设报价
  • 单页网站的营销定制应用软件有哪些
  • 如何建立一个网站详细步骤品牌建设可以从哪方面入手
  • 杨浦做网站福州网站公司
  • 厦门网站建设工程汽车网站正在建设中模板
  • 关于网站规划建设方案书怎么制作官网
  • 网站域名注销流程昌邑微信网站建设公司
  • 如何做众筹网站wordpress手机投放广告
  • 贵阳制作网站的公司如何找友情链接
  • 苏州诶茵诶公司网站flash网站怎么制作
  • 域名申请网页制作网站建设珠海免费模板建站
  • 行情网免费网站大全wordpress 头像上传路径
  • 网站开发联系方式做网站如何提需求
  • 小程序定制团队seo顾问推推蛙
  • 徐州网站建设公司哪家好经典广告
  • 百度的官方网站wordpress提示插件安装
  • 网站的按钮怎么做 视频宁波网站建设用什么软件
  • 宜宾市做网站多少钱老板办公室装修效果图
  • 如何将网站挂载域名手机网站布局教程
  • 哪个网站可以做销售记录公司经营范围分类目录
  • dw网站的站点建设怎么百度做网站
  • 在家做网站设计国土局网站建设经验
  • 营销型网站报价商丘做网站推广的公司