CFN Cloud
Cloud Future New Life
en zh
2025-10-04 · 0 次浏览

Deployment 与 ReplicaSet

用 Deployment 管理副本与滚动更新。

Deployment 是你日常最常用的控制器,它会创建并管理 ReplicaSet,确保副本数和版本更新都可控。

关键点

  • ReplicaSet 负责“副本数量”
  • Deployment 负责“版本更新”
  • 回滚是 Deployment 的能力

示例 Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
        - name: api
          image: nginx:1.25

发布与回滚

kubectl rollout status deploy/api
kubectl rollout history deploy/api
kubectl rollout undo deploy/api

实操要点

  • 先做快速盘点:kubectl get nodeskubectl get pods -Akubectl get events -A
  • 对比“期望状态”和“实际状态”,kubectl describe 往往能解释漂移或失败原因。
  • 名称、Label、Selector 要一致,避免 Service 或控制器找不到 Pod。

快速检查清单

  • 资源定义与业务意图一致。
  • Namespace、权限、镜像与环境匹配。
  • 上线前具备健康探针与可观测日志。

参考链接