K8s脱坑前的挣扎——YAML文件

本文介绍了YAML的概述,包括其诞生、命名、功能、格式及适用场景。YAML是一种简洁的非标记性语言,常用于配置和管理Kubernetes资源。文章提供了YAML文件的示例,并讲解了如何生成和获取YAML文件格式,对于理解和使用Kubernetes非常有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:YAML(/ˈjæməl/,尾音类似 camel ) 是"YAML不是一种标记语言"的外语缩写 (见前方参考资料原文内容);但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言

它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多

一、YAML概述

  • Kubernetes支持YAML和JSON格式创建资源对象
  • JSON格式用于接口之间消息的传递
  • YAML格式用于配置和管理
  • YAML是一种简洁的非标记性语言

1.诞生

  • YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822

  • Clark Evans在2001年5月在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者

2.命名

  • YAML是"YAML Ain’t a Markup Language"(YAML不是一种置标语言)的递归缩写

  • 在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种置标语言)

3.功能

  • YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表,标量等资料形态

  • 它使用空白符号缩排和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种设定档、倾印除错内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)

  • 尽管它比较适合用来表达阶层式(hierarchical model)的数据结构,不过也有精致的语法可以表示关联性(relational model)的资料

  • 由于YAML使用空白字符和分行来分隔资料,使得它他特别适合用grep、Python、Perl、Ruby操作

  • 其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括号等,这些符号在嵌套结构中会变得复杂而难以辨认

4.格式

  • 多行缩进
    • 数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号"-“来表示,map结构里面的key/value对用冒号”:"来分隔

    • 注意:

      • 字串不一定要用双引号标识
      • 在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符)
      • 允许在文件中加入选择性的空行,以增加可读性
      • 在一个档案中,可同时包含多个文件,并用"–"分隔
      • 选择性的符号"…"可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)
  • 单行缩写
    • YAML也有用来描述好几行相同结构的数据的缩写语法,数组用’[]‘包括起来,hash用’{}'来包括
语法格式:
  缩进标识层级关系
  不支持制表符缩进,使用空格缩进
  通常开头缩进两个空格
  字符后缩进一个空格,如冒号,逗号等
  “---”表示YAML格式,一个文件的开始
  “#”表示注释

5.适用场景

  • 脚本语言

    • 由于实现简单,解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值