Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /opt/bitnami/wordpress/wp-includes/functions.wp-styles.php on line 90
认识YAML - IT民工进阶记

认识YAML

1、什么是YAML

官网(https://yaml.org/)
YAML语言创建于2001年,比XML晚了三年。YAML虽然在名字上模仿了XML,但实质上与XML完全不同,更适合人类阅读,计算机解析起来也很容易。
YAML是JSON的超集,支持整数、浮点数、布尔、字符串、数组和对象等数据类型。
也就是说,任何合法的 JSON 文档也都是 YAML 文档,如果你了解 JSON,那么学习 YAML 会容易很多。
但和 JSON 比起来,YAML 的语法更简单,形式也更清晰紧凑,比如:

  • 使用空白与缩进表示层次,缩进不允许使用tab,只能用空格,缩进空格数多少无所谓,只要保证同一层级空格数一样多,即左对齐即可。
  • 使用#书写注释。
  • 对象(字典)的格式与 JSON 基本相同,但 Key 不需要使用双引号。
  • 数组(列表)是使用-开头的清单形式(有点类似 MarkDown)。
  • 表示对象的 : 和表示数组的 - 后面都必须要有空格。
  • 可以使用 --- 在一个文件里分隔多个 YAML 对象。

2、YAML示例

YAML数组(列表)

OS:
  - linux
  - macOS
  - Windows

对应json是这样的:

{
  "OS":[
  "linux",
  "macOS",
  "Windows"
  ]
}

YAML对象(字典)

Kubernetes:
  master: 1
  worker: 3

对应json是这样:

{
  “Kubernetes":{
  "master":1,
  "worker":3
  }
}

复杂的例子,组合数组和对象

Kubernetes:
  master:
    - apiserver: running
    - etcd: running
  node:
    - kubelet: running
    - kube-proxy: down
    - container-runtime: [docker, containerd, cri-o]

对应json为

{
  Kubernetes: {
    "master": [
      {
        "apiserver": "running"
      },
      {
        "etcd": "running"
      }
    ],
    "node": [
      {
        "kubelet": "running"
      },
      {
        "kube-proxy": "down"
      },
      {
        "container-runtime": ["docker", "containerd", "cri-o"]
      }
    ]
  }
}

用一张图来总结YAML
认识YAML

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
Kubernetes云原生

K8S主要资源罗列

2025-4-9 8:33:45

Kubernetes云原生

API资源对象

2025-4-9 8:35:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
本站支持IPv6访问