Deployment是Kubernetes中管理无状态应用的核心资源,通过控制ReplicaSet来维持指定数量Pod副本、支持滚动更新与回滚;需确保selector与template标签一致,推荐用YAML部署并配合Service使用。
Deployment 是 Kubernetes 中最常用的应用部署方式,它通过声明式定义 Pod 的期望状态,由控制器自动创建、更新和维持指定数量的 Pod 实例。
Deployment 不直接管理 Pod,而是管理 ReplicaSet,再由 ReplicaSet 控制 Pod 的生命周期。它提供滚动更新、回滚、扩缩容等能力,适合无状态服务部署。
你可以选择命令行快速创建,或编写 YAML 文件进行精细化控制。
kubectl create deployment nginx-app --image=nginx:1.27 --replicas=2
编写 deploy.yaml,包含 apiVersion、kind、metadata、spec(含 replicas、selector、template)等字段;再执行 kubectl apply -f deploy.yaml
一份可用的 Deployment YAML 必须满足“标签一致性”和“模板合法性”两个硬性要求。
部署后,可通过标准命令观察、调整和维护应用。
kubectl get deploy、kubectl get pods -l app=xxx
kubectl set image deploy/nginx-app nginx=nginx:1.28 --record
kubectl scale deploy/nginx-app --replicas=4
kubectl rollout undo deploy/nginx-app 或指定版本 --to-revision=2
不复杂但容易忽略细节,比如 selector 和 template 标签不匹配会导致 Pod 创建失败却无明显报错。写完 YAML 后建议先用 kubectl apply --dry-run=client -o yaml 验证格式和逻辑。