k8s的yaml的文件组成有哪些
时间: 2024-10-21 12:10:17 浏览: 25
Kubernetes (k8s) 的 YAML 文件主要由以下几个部分构成:
1. **头部信息**:包括文件类型 (`apiVersion`) 和定义的资源种类 (`kind`)。例如,`apiVersion: apps/v1` 表示这是 apps 组的 v1 版本规范。
2. **Metadata**:描述资源的基本元数据,如名称 (`name`)、生成时间 (`generateName` 或 `labels`) 和一些标识符 (`uid`)。
3. **Spec(规格)**:详述资源的配置信息,针对不同的资源类型会有不同的字段:
- 对于 `Deployment`,有副本数 (`replicas`)、选择器 (`selector`) 和 pod 模板 (`template`)。
- 对于 `Service`,有访问策略 (`ports`)、选择器 (`selector`) 等。
- 对于 `Pod`,包含容器定义 (`containers`)、存储需求 (`volumes`)、网络设置 (`containers` 中的 `ports`) 等。
4. **Optional fields**:根据需要可以添加额外的信息,比如 `tolerations` (容忍节点条件)、`affinity` (pod 自动调度规则) 等。
一个典型的 YAML 示例会包含上述结构,如下所示:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.17.9
ports:
- containerPort: 80
```
阅读全文