语法要求
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- # 表示注释,从这个字符一直到行尾,都会被解析器忽略
数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
对象类型:对象的一组键值对,使用冒号结构表示(冒号后面必须空格后在填写)
apiVersion: apps/v1
kind: Deployment
#冒号后都有空格
数组类型:一组连词线开头的行,构成一个数组
- 符号(-)不体现在上下层级中
- 符号(-)必须加空格后输入
containers:
- name: ldap-web
image: ldap_web_manage
ports:
错误写法
containers:
-name: ldap-web #体现在这行
image: ldap_web_manage
ports:
纯量:针对的是赋值,冒号的右边
- 支持所有的数据类型:字符串、布尔值、整数、浮点数、Null
Kubernetes Yaml文件
- 控制层
- 资源控制层(Deployment、RelicaSet、StatefulSet、Service、Pod等等)
- labels标准选择器(控制Service映射选择,副本数控制选择、NodeSelector调度)
- 被控制层(Pod、容器)
apiVersion: apps/v1
kind: Deployment
metadata:
name: ldapweb-deployment
spec:
replicas: 2
selector:
matchLabels:
app: ldap-web
ver: v1
template:
metadata:
labels:
app: ldap-web
ver: v1
spec:
containers:
- name: ldap-web
image: ldap_web_manage
ports:
- containerPort: 8080
imagePullPolicy: Never
securityContext:
privileged: true
注意点:
- 区分层级,每种资源层级不同
kubectl explain deployment #explain+资源属性,第一层级,并有详细使用说明
kubectl explain deployment.spec #层级只要后面加点跟参数。第二层级
- 参数属性是否加 - (主要也要空格,不算层级格式)
这个有点不是太明白,提示需要的,但是加上反而不对,好像只有容器部分需要加
kubectl explain deployment.spec.template.spec.containers
- 冒号后空格
- containers 下层 无非就是非常类似docker run 后面跟着很多参数的添加,需要什么功能的可以到这个下面查找
Yaml参数解释可以参考:点击