Kubernetes 配置文件字段详解
1. 基础元数据字段
| 字段路径 | 类型 | 必填 | 说明 |
|---|---|---|---|
apiVersion | string | ✅ | 资源所属的API组(例如:apps/v1 表示 Deployment) |
kind | string | ✅ | 资源类型(如 Deployment、Service、ConfigMap 等) |
metadata.name | string | ✅ | 资源名称(同一命名空间内必须唯一) |
metadata.namespace | string | ❌ | 资源所属命名空间(默认 default) |
metadata.labels | map | ❌ | 标签键值对(用于资源分类和选择) |
2. Deployment 核心字段
yaml
spec:
replicas: 3 # 副本数(高可用建议 ≥3)
selector: # Pod选择器
matchLabels:
app: my-app # 必须匹配 template.metadata.labels
template: # Pod模板
metadata:
labels: # Pod标签(需与 selector.matchLabels 一致)
app: my-app
spec:
containers: # 容器列表
- name: main-container # 容器名称
image: nginx:latest # 容器镜像
ports:
- containerPort: 80 # 容器暴露端口
env: # 环境变量
- name: ENV_VAR
value: "production"
resources: # 资源限制
requests:
cpu: "100m" # 0.1核CPU
memory: "128Mi" # 128MB内存
limits:
cpu: "500m"
memory: "256Mi"
livenessProbe: # 存活检查
httpGet:
path: /health
port: 80
initialDelaySeconds: 303. Service 关键字段
yaml
spec:
type: ClusterIP # 服务类型(ClusterIP/NodePort/LoadBalancer)
selector: # 选择要代理的Pod
app: my-app
ports:
- name: http # 端口名称
protocol: TCP # 协议类型
port: 80 # Service对外端口
targetPort: 80 # 容器内端口4. ConfigMap & Secret 对比
| 字段 | ConfigMap | Secret |
|---|---|---|
| 数据存储类型 | 明文配置(如环境变量) | 敏感数据(自动Base64编码) |
| 定义示例 | data: KEY: value | data: KEY: base64-value |
| 挂载方式 | 环境变量或文件卷 | 环境变量或文件卷(推荐文件卷) |
5. 存储卷(Volume)配置
yaml
volumes: # 定义存储卷
- name: config-volume
configMap:
name: app-config # 引用ConfigMap
- name: data-volume
persistentVolumeClaim:
claimName: app-data-pvc # 引用PVC
volumeMounts: # 容器内挂载
- name: config-volume
mountPath: /etc/config
- name: data-volume
mountPath: /data6. 健康检查(Probe)参数
| 参数 | 说明 |
|---|---|
initialDelaySeconds | 容器启动后等待时间(秒)才开始检查 |
periodSeconds | 检查间隔时间(默认10秒) |
timeoutSeconds | 检查超时时间(默认1秒) |
successThreshold | 连续成功次数标记为健康 |
failureThreshold | 连续失败次数标记为不健康 |
7. 横向扩缩容(HPA)配置
yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 2 # 最小副本数
maxReplicas: 10 # 最大副本数
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50 # CPU平均使用率阈值格式优化说明
- 层级缩进:使用 2 空格缩进,符合 YAML 规范
- 重点标注: • ✅ 表示必填字段 • ❌ 表示可选字段 • 代码块用于示例片段
- 对比表格:清晰区分相似概念(如 ConfigMap vs Secret)
- 注释说明:在代码块内直接添加
# 注释