Skip to content

Kubernetes 配置文件字段详解

1. 基础元数据字段

字段路径类型必填说明
apiVersionstring资源所属的API组(例如:apps/v1 表示 Deployment)
kindstring资源类型(如 DeploymentServiceConfigMap 等)
metadata.namestring资源名称(同一命名空间内必须唯一)
metadata.namespacestring资源所属命名空间(默认 default
metadata.labelsmap标签键值对(用于资源分类和选择)

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: 30

3. 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 对比

字段ConfigMapSecret
数据存储类型明文配置(如环境变量)敏感数据(自动Base64编码)
定义示例data: KEY: valuedata: 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: /data

6. 健康检查(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平均使用率阈值

格式优化说明

  1. 层级缩进:使用 2 空格缩进,符合 YAML 规范
  2. 重点标注: • ✅ 表示必填字段 • ❌ 表示可选字段 • 代码块用于示例片段
  3. 对比表格:清晰区分相似概念(如 ConfigMap vs Secret)
  4. 注释说明:在代码块内直接添加 # 注释

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer