yaml语言的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。
yaml语法规则
1、yaml配置文件常见单词

kind 同类,类型
apiVersion API版本
metadata 元数据
spec 规格,说明书(定义具体参数)
replicas 副本
selector 选择器
template 模板

2、yaml语法的基本语法规则如下:

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进时不允许使用Tab键,只能空格
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  5. 表示注释,从这个字符到行尾,都会被解析器忽略

  6. 在yaml里面,连续的项目(如:数组元素、集合元素)通过“-”减号来表示,map结构里面的键值对(key/value)用“:”冒号来分割

3、yaml支持的数据结构有三种

  • 对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence)/列表(list)
  • 纯量(scalars):单个的、不可再分的值

4、数据结构——对象
对象的一组键值对,使用冒号结构表示。
例1:animal代表pets
animal:pets
yaml也允许另外一种写法,将所有键值对写成一个行内对象
例2:hash对象中包括name和foo
hash:
name: Steve
foo: bar
或者
hash: {name: Steve, foo: bar}
5、数组
一组连词线开头的行,构成一个数组
-Cat
-Dog
-Goldfish
转为JavaScript如下
[‘Cat’, ‘Dog’, ‘Goldfish’]
数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。数组中还有数组。
-
- Cat
- Dog
- Goldfish
转为JavaScript如下
[ [ ‘Cat’, ‘Dog’, ‘Goldfish’ ] ]

数组也可以采用行内表示法
animal: [Cat, Dog]
转为 JavaScript 如下。
{ animal: [ ‘Cat’, ‘Dog’ ] }

6、复合结构
对象和数组可以结合使用,形成复合结构
例:编写一个包括BAT基本信息的bat.yaml配置文件

  1. [root@etcd ~]# cat bat.yaml
  2. bat:
  3. website:
  4. baidu:http://www.baidu.com
  5. qq:http://www.qq.com
  6. ali:
  7. - http://www.taobao.com
  8. - http://www.tmall.com
  9. ceo:
  10. yanhongli: 李彦宏
  11. huatengma: 马化腾
  12. yunma: 马云
  13. [root@etcd ~]#

注:
对象 :
对象:
对象:键值
对象:

  • 数组
  • 数组
    7、纯量
    纯量是最基本的、不可再分的值。如:字符串、布尔值、整数、浮点数、Null、时间、日期
    例如:数值直接以字面量的形式表示。
    number: 12.30