码迷,mamicode.com
首页 > 其他好文 > 详细

YAML文件格式_k8s/docker-compose配置文件

时间:2019-04-16 01:10:06      阅读:734      评论:0      收藏:0      [点我收藏+]

标签:height   相同   jin   定义   dem   container   https   label   情况下   

YAMLYet Another Markup Language,是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件。它规则如下:

1)大小写敏感

2)使用缩进表示层级关系,但不支持tab缩进,只支持空格

3)缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的空格即可

4)“#”表示注释,从这个字符开始,直到行末,都会被解析器忽略

关于k8sYAML的使用,只有两种类型:MapsListsMaps的子项可以是ListsLists的子项也可以是Maps

Maps:就是一个字典,即key:value的键值对。

---

apiVersion: v1

kind: Pod

metadata:

name: kube100-site

labels:

app: web

第一行是分隔符,并且是可选的。如果在单个文件中只定义了一个服务,那么这种情况下,第一行的分隔符就可以忽略不计。在上面的例子中,可以看出有两个值:v1Pod,对应它们的键是apiVersionkind

metadata这个key对应的值为一个Maps,而嵌套的labels这个key的值又是一个Map。实际使用中可视情况进行多层嵌套。

? YAML处理器根据行缩进来知道内容之间的关联。上述例子中,使用两个空格作为缩进,但空格的数据量并不重要,只是至少要求一个空格并且所有缩进保持一致的空格数 。例如,namelabels是相同缩进级别,因此YAML处理器知道他们属于同一map;它知道applables的值,因为app的缩进更大。

Lists:就是一个列表。

args

-beijing

-shanghai

-shenzhen

-guangzhou

可以有任何数量的项在列表中,项的定义以破折号(-)开头,并且和父元素之间存在缩进。在JSON格式中,表示如下:

{ 

“args”: [“beijing”, “shanghai”, “shenzhen”, “guangzhou”] 

}

一个示例如下:

---

apiVersion: v1

kind: Pod

metadata:

name: kube100-site

labels:

app: web

spec:

containers:

- name: front-end

image: nginx

ports:

- containerPort: 80

- name: flaskapp-demo

image: jcdemo/flaskapp

ports: 8080

如上述文件所示,定义一个containersList对象,每个子项都由nameimageports组成,每个ports都有一个KEYcontainerPortMap组成


参考:

1KubernetesYAML文件

YAML文件格式_k8s/docker-compose配置文件

标签:height   相同   jin   定义   dem   container   https   label   情况下   

原文地址:https://www.cnblogs.com/embedded-linux/p/10714126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!