YAML:Kubernetes世界里的标准工作语言

YAML,Kubernetes 世界里的标准工作语言,一起了解下 YAML 是什么?为什么要有 YAML? 它是个什么样子并且怎么使用它。

YAML 是什么?

YAML 官网:yaml.org/ (对语言规范有详细的介绍),引用官网一段话:YAML is a human-friendly data serializationlanguage for all programming languages.。它是一种更适合人类可读的数据序列化格式,让我们可以在不同的编程语言下轻松编写和解析。

使用场景

  • 配置文件(如 Docker Compose、 Kubernetes、 Ansible);
  • 跨语言数据交换;
  • 结构化数据存储(如: OpenAPI、 Swagger 的 API 规范);

支持的数据类型

  • 支持整数、浮点数、布尔、字符串;
  • 支持序列(列表、数组);
  • 映射(字典、哈希表);
  • 多行字符串(| 保留换行符、> 折叠为单行);

另外,我们需要知道,YAMLJSON 的超集,也就是说任何合法的 JSON 文档也都是 YAML 文档。与 JSON 文档比起来,显然可读性比较强,语法更简单些。

基本语法

  • 使用空白与缩进表示层次,可以不使用花括号和方括号;
  • 使用 # 注释;
  • 数组(列表)是使用 - 开头的清单形式;
  • 表示对象的 : 和表示数组的 - 后面必须要用空格;
  • 使用 --- 在一个文件里分隔多个 YAML 对象;

简单示例

yaml 复制代码
# 数组(列表)
OS:
 - Linux
 - MacOS
 - Windows
 - HarmonyOS
# 键值对
name: 巴莫
age: 18
is_student: false

# 对象(字典)
address:
 province: 火星省
 city: 巴拉市
 district: 有水区

对应的 JSON 格式如下:

json 复制代码
{
    "OS": ["Linux","MacOS","Windows","HarmonyOS"]
}

{
    "name": "巴莫",
    "age": 18,
    "is_student": false
}

{
    "address": {
        "province": "火星省",
        "city": "巴拉市",
        "district": "有水区"
    }
}

可以看出来 YAMLJSON 对比,有一个明显的变化就是 YAML 里面的 key 不需要使用双引号,看起来很简洁干练。

再举一个 Kubernetes 里面的示例再看看:

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

这个结构表示:顶层对象是 Kubernetes,包含两个主要部分:masternode

1、master 部分是一个数组,包含两个对象:

  • apiserver 的状态是 "running";
  • etcd 的状态是 "running";

2、node 部分是一个数组,包含三个元素:

  • kubelet 的状态是 "running";
  • kube-proxy 的状态是 "down"(表示不正常);
  • container-runtime 是一个数组,列出了三种可能的容器运行时选项:dockercontainerdcri-o

这种结构很好地展示了 Kubernetes 集群中主节点和工作节点的不同组件及其状态。在实际使用中,这种格式可以用来记录或报告集群的健康状态。

相关推荐
运维全栈笔记1 天前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
尘世壹俗人1 天前
使用K8s部署模型
kubernetes
AI木马人1 天前
9.人工智能实战:GPU 服务如何上 Kubernetes?从单机部署到 K8s + NVIDIA Device Plugin + HPA 的生产级改造
人工智能·容器·kubernetes
码点滴1 天前
告别显存焦虑:PagedAttention 如何将大模型吞吐量提升 4 倍?
人工智能·架构·kubernetes·大模型·pagedattention
键盘鼓手苏苏1 天前
Kubernetes 容器安全最佳实践
云原生·kubernetes·k8
键盘鼓手苏苏1 天前
Kubernetes 安全最佳实践
云原生·kubernetes·k8
木雷坞2 天前
K8s GPU 推理服务 ImagePullBackOff 排查与预热
云原生·容器·kubernetes·gpu算力
吴爃2 天前
Spring Boot 项目在 K8S 中的打包、部署与运维发布实践
运维·spring boot·kubernetes
The Straggling Crow2 天前
Monitoring 2026-04-30
kubernetes
AOwhisky2 天前
Kubernetes调度与服务暴露:从“定时任务”到“服务发现”的完全指南
linux·运维·云原生·容器·kubernetes·服务发现