文章目录
一、概述
二、YAML文件优点
三、YAML与 JSON 和 XML 的关系
四、YAML 文件的结构
五、YAML 在 Kubernetes 中的使用
六、YAML文件模板生成/导出
一、概述
Kubernetes只支持YAML和JSON格式创建资源对象
JSON格式用于接口之间消息的传递,YAML格式用于配置和管理
YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。
二、YAML文件优点
YAML 文件易于人类阅读,具有表达性和可扩展性。
YAML 文件易于实现和使用。
可在编程语言之间轻松移植。
与敏捷语言的原生数据结构相匹配。
YAML 文件具有一致模型,支持通用工具。
YAML 文件支持 One-pass 处理。
使用方便,因此您无需再将所有的参数添加到命令行中。
易于维护 – 可以将 YAML 文件添加到源控件中以跟踪更改。
灵活便捷 – 可以使用 YAML 创建更加复杂的结构(相对于使用命令行可以创建的结构)
三、YAML与 JSON 和 XML 的关系
XML 是许多领域的优先采用格式。XML 最初设计为与标准通用标记语言 (SGML) 向后兼容,后者旨在支持结构化文档。因此,XML存在许多设计上的约束。
JSON 的设计理念是简单性和通用性,并且易于生成和解析。JSON 格式的可读性低,但是这种格式的数据每一种现代编程环境都可以轻松处理。
YAML 的设计目标是提升可读性,提供更加完善的信息模型。YAML 的生成和解析更加复杂,因此可以将其视为 JSON 的自然超集。每个
JSON 文件都是一个有效的 YAML 文件。
综上所述,在需要额外功能的情况下,可以轻松地从 JSON 迁移到 YAML。YAML 是从 XML 衍生而来。
四、YAML 文件的结构
键值对 – YAML 文件中的基本条目类型是键值对。键值对的格式是键和冒号,之后是空格,然后是值。
数组/列表 – 列表会在列表名称下列出一些项目。列表的元素以 - 开头。可以有 n 个列表,但是,数组中各个元素的缩进非常重要。
字典/地图 – YAML 文件的更复杂类型是字典和地图。
在编写 YAML 文件时,切记以下准则:
缩进标识层级关系
不支持制表符缩进,使用空格缩进
通常开头缩进两个空格
字符后缩进一个空格,如冒号,逗号等
“—”表示YAML格式,一个文件的开始
“#”表示注释
五、YAML 在 Kubernetes 中的使用
Kubernetes 资源是通过声明的方式创建的,因此可以使用 YAML 文件。
Kubernetes 资源(比如 Pod、服务和部署)是使用 YAML 文件创建的。
YAML文件开头需要编写标签信息,对应不同资源信息
[root@k8s_master ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.