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 还支持注释,可以使用 # 符号添加注释,从而在配置文件中提供更好的文档。