yaml语言的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。
yaml语法规则
1、yaml配置文件常见单词
| kind | 同类,类型 |
|---|---|
| apiVersion | API版本 |
| metadata | 元数据 |
| spec | 规格,说明书(定义具体参数) |
| replicas | 副本 |
| selector | 选择器 |
| template | 模板 |
2、yaml语法的基本语法规则如下:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只能空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
表示注释,从这个字符到行尾,都会被解析器忽略
- 在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配置文件
[root@etcd ~]# cat bat.yamlbat:website:baidu:http://www.baidu.comqq:http://www.qq.comali:- http://www.taobao.com- http://www.tmall.comceo:yanhongli: 李彦宏huatengma: 马化腾yunma: 马云[root@etcd ~]#
注:
对象 :
对象:
对象:键值
对象:
- 数组
- 数组
7、纯量
纯量是最基本的、不可再分的值。如:字符串、布尔值、整数、浮点数、Null、时间、日期
例如:数值直接以字面量的形式表示。
number: 12.30
