YAML文件概述
k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这种文件叫做资源清单文件,通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。
YAML文件书写格式
YAML介绍
YAML:仍是一种标记语言。为了强调这种语言以数据作为中心,而不是以标记语言为重点。YAML是一个可读性高,用来表达数据序列的格式。
YAML基本语法
- 使用空格作为缩进
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。
- 低版本缩进时不允许使用tab键
- 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略
YAML示例
包含两大部分:控制器和被控制对象
# 控制器部分
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
# 被控制对象
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
标签 | 含义 |
---|---|
apiVersion | API版本 |
kind | 资源类型 |
metadata | 资源元数据 |
spec | 资源规格 |
replicas | 副本数量 |
selector | 标签选择器 |
template | Pod模板 |
metadata | Pod元数据 |
spec | Pod规格 |
containers | 容器配置 |
如何快速编写YAML文件
- 使用
kubectl create
命令生成yaml文件
kubectl create deployment web --image=nginx -o yaml --dry-run
kubectl create deployment web --image=nginx -o yaml --dry-run > m1.yaml
- 使用
kubectl get
命令导出yaml文件
kubectl get deploy
kubectl get deploy nginx -o=yaml --export > m2.yaml