yaml文件
- 1、YAML 文件概述
- 2、YAML 文件书写格式
- 3、资源清单描述方法
- 4、yaml文件编写
- 4.1 没有真正部署资源的过程
- 4.2 资源已经存在的时候
- 5、yaml文件中必须存在的属性
1、YAML 文件概述
- k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也 就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文 件,通过 kubectl 命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署 了。YAML 介绍 YAML :仍是一种标记语言。为了强调这种语言以数据做为中心,而不是以标记语言为重点。 YAML 是一个可读性高,用来表达数据序列的格式。
2、YAML 文件书写格式
- (1)YAML 基本语法 * 使用空格做为缩进 * 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 * 低版本缩进时不允许使用 Tab 键,只允许使用空格 * 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略
- (2)一般开头缩进两个空格,字符后缩进一个空格。
- (3)YAML 支持的数据结构 * 对象 键值对的集合,又称为映射(mapping) / 哈希(hashes) / 字典(dictionary)
- (4)数组: 一组按次序排列的值,又称为序列(sequence) / 列表 (list)
- (5)纯量(scalars): 单个的、不可再分的值
- (6) - - - 表示新的Yaml文件开始
3、资源清单描述方法
-
(1)在 k8s 中,一般使用 YAML 格式的文件来创建符合我们预期期望的 pod,这样的 YAML 文件称为资源清单。
-
(2)常用字段 必须存在的属性
-
可以对比下面两张图,分析每一个元素代表的含义
4、yaml文件编写
4.1 没有真正部署资源的过程
- 通过kubectl create 生成yaml文件,一般用于没有真正部署资源的过程
[root@master ~]# kubectl create deployment web --image=nginx -o yaml --dry-run > my1.yaml ##直接生成
W0504 17:12:42.044718 49938 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.
[root@master ~]# ll my1.yaml
-rw-r--r-- 1 root root 376 May 4 17:12 my1.yaml
[root@master ~]# cat my1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web
name: web
spec:
replicas: 1
selector:
matchLabels:
app: web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: web
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
[root@master ~]#
4.2 资源已经存在的时候
- 通过Kubectl get 命令导出yaml文件
[root@master ~]# kubectl get deploy nginx -o=yaml --export >my2.yaml #文件内容很多