标签:nod http int ring length 允许 开始 表示 浮点数
YAML在配置文件中被大量引用,比如java、playbook、以及K8S等。
在YAML中,使用冒号加缩进代表层级关系,-表示数组元素。
#表示注释行,YAML中只有行注释。
YAML大小写敏感,缩进只能使用空格键,不能使用TAB键,只要是左对齐就是相同层级。
一般使用2个或者4个空格表示缩进。
在YAML中允许三种格式:常量、对象和数组。
YAML中提供了多种常量结构,包括:整数、浮点数、字符串等。
boolean:
- TRUE #true,True都可以
- FALSE #false,False都可以
float:
- 3.14
- 6.8523015e+5 #可以使用科学计数法
int:
- 123
- 0b1010_0111_0100_1010_1110 #二进制表示
null:
nodeName: ‘node‘
parent: ~ #使用~表示null
string:
- 哈哈
- ‘Hello world‘ #可以使用双引号或者单引号包裹特殊字符
- newline
newline2 #字符串可以拆成多行,每一行会被转化成一个空格
date:
- 2018-02-17 #日期必须使用ISO 8601格式,即yyyy-MM-dd
datetime:
- 2018-02-17T15:02:31+08:00 #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
常量的值都是固定值或者内建值。这是与属性的一大区别。
使用短横线(-)加一个空格表示一个数组项:
name:
- kebi
- maoxian
也可以这样表示:
-
- kebi
- maoxian
可以简单理解为[[kebi,maoxian]]
下面是一个稍微复杂的例子:
team:
-
id: 1
name: 4AM
-
id: 2
name: OMG
意思是:team的属性是一个数组,每一个数组元素又是由id和name两个属性构成。
数组也可以使用流式(flow)的方式表示:
team: [{id: 1,name: 4AM},{id: 2,name: OMG}]
使用冒号代表,格式为key: value。冒号后面要加一个空格。
url: http://www.wolfcode.cn
可以使用缩进表示层级关系:
name:
4AM: 8
OMG: 5
依然支持流式写法:
name: {4AM: 8,OMG: 5}
较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的key,配合一个冒号加一个空格代表一个value。
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
意思是对象的key是一个数组[complexkey1,complexkey2],对象的值也是一个数组[complexvalue1,complexvalue2]
下面是一个总是示例:
- kebi
#对象
url: http://www.baidu.com
#数组
server:
- 192.168.1.1
- 192.168.1.2
#常量
date: 2018-02-13
length: 167
(1)---:表示一个文档的开始
---
Time: 2018-02-17T15:02:31+08:00
User: ed
Warning:
This is an error message for the log file
---
Time: 2018-02-17T15:05:21+08:00
User: ed
Warning:
A slightly different error message
(2)...:表示一个文档的结束,和---配合使用
---
time: 20:03:20
player: Sammy Sosa
action: strike (miss)
...
---
time: 20:03:47
player: Sammy Sosa
action: grand slam
...
(3)!!:类型强行转换
string:
- !!str 54321
- !!str true
将数字和bool值转化为字符串
(4)>:在字符串中折叠换行,|:保留换行符
accomplishment: >
Mark set a major league
home run record in 1998.
结果就是:
accomplishment=Mark set a major league home run record in 1998.
stats: |
65 Home Runs
0.278 Batting Average
结果就是:
stats=65 Home Runs
0.278 Batting Average,
(5)引用
重复的内容在YAML中可以使用&来完成锚点定义,使用*来完成锚点的引用。
hr:
- Mark McGwire
- &SS Sammy Sosa
rbi:
- *SS
- Ken Griffey
解释:
定义锚点SS,然后*SS引用锚点。
结果:
{rbi=[Sammy Sosa, Ken Griffey], hr=[Mark McGwire, Sammy Sosa]}
注意:不能独立的定义锚点。
下面以一个k8s配置文件作为示例:
apiVersion: v1 kind: Pod #资源对象类型 metadata: #pod元数据 name: volume-pod #pod名称 spec: #相关属性定义 volumes: #映射卷可能存在多个,因此使用数组 - name: app-logs emptyDir: {} containers: #定义了两种类型的容器 - name: tomcat image: tomcat:latest ports: - containerPort: 8080 #一个容器可能有多个端口被看起 volumeMounts: - name: app-logs mountPath: /usr/local/tomcat/logs - name: logreader image: busybox:latest command: ["sh","-c","tail -f /logs/catalina*.log"] volumeMounts: - name: app-logs mountPath: /logs
YAML文件基本就包含对象和数组两种格式,然后嵌套多层。
标签:nod http int ring length 允许 开始 表示 浮点数
原文地址:https://www.cnblogs.com/yangmingxianshen/p/12444966.html