Kubernetes 的配置文件采用 YAML(YAML 不是标记语言),这使其易于访问和阅读。与专有语言不同,YAML 是一种人类可读的数据序列化格式,被广泛用于配置文件。


下面的代码片段演示了用 YAML 编写的基本 Kubernetes 部署配置。该示例创建了一个简单的 Nginx 部署。

[代码清单]

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
spec:
 replicas: 3
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
​    app: nginx
  spec:
   containers:
   - name: nginx
​    image: nginx:latest
​    ports:
​    - containerPort: 80

[执行结果]

使用 `kubectl apply -f nginx-deployment.yaml` 应用此配置后,Kubernetes 将创建一个名为 `nginx-deployment` 的部署,其中包含 3 个在端口 80 上运行的 Nginx 容器副本。

YAML 文件的结构强调可读性。每一级缩进代表一个层次结构,便于理解不同组件之间的关系。在这个例子中

apiVersion 指定要使用的 Kubernetes API 版本。

种类表示创建的资源类型(本例中为部署)。

元数据包含有助于唯一标识资源的数据。

spec 定义了部署的预期状态,包括复制的数量和 Pod 的模板。

YAML 对缩进很敏感,因此要确保间距一致。每一级都应使用空格缩进,而不是制表符。

[小知识]

YAML 不仅在 Kubernetes 中使用,在 Ansible 和 Docker Compose 等其他配置管理工具中也很流行。它的简单性和可读性使其成为开发人员和系统管理员的首选。此外,YAML 还支持注释,可以使用 # 符号添加注释,从而在配置文件中提供更好的文档。