最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Kubernetes 如何通过 Deployment 部署应用实例
时间:2026-08-17 08:26:48 编辑:袖梨 来源:一聚教程网
Deployment是Kubernetes中管理无状态应用的核心资源,通过控制ReplicaSet来维持指定数量Pod副本、支持滚动更新与回滚;需确保selector与template标签一致,推荐用YAML部署并配合Service使用。
Deployment 是 Kubernetes 中最常用的应用部署方式,它通过声明式定义 Pod 的期望状态,由控制器自动创建、更新和维持指定数量的 Pod 实例。
Deployment 的核心作用
Deployment 不直接管理 Pod,而是管理 ReplicaSet,再由 ReplicaSet 控制 Pod 的生命周期。它提供滚动更新、回滚、扩缩容等能力,适合无状态服务部署。
- 确保指定数量的 Pod 副本始终运行(如 replicas: 3)
- 支持平滑升级:新版本 Pod 逐步替换旧版本,不中断服务
- 保留历史版本记录,便于快速回滚
- 与 Service 配合,实现稳定的服务发现和流量分发
两种常用创建方式
你可以选择命令行快速创建,或编写 YAML 文件进行精细化控制。
-
命令行一键创建:适合测试或简单场景
kubectl create deployment nginx-app --image=nginx:1.27 --replicas=2 -
YAML 文件定义:推荐用于生产环境,便于版本管理和复用
编写
deploy.yaml,包含 apiVersion、kind、metadata、spec(含 replicas、selector、template)等字段;再执行kubectl apply -f deploy.yaml
关键配置要点
一份可用的 Deployment YAML 必须满足“标签一致性”和“模板合法性”两个硬性要求。
- selector.matchLabels 必须与 template.metadata.labels 完全一致,否则 Deployment 无法关联到 Pod
- replicas 指定期望运行的 Pod 数量,Kubernetes 会持续校验并修复偏差
- containerPort 是容器内监听端口,仅作声明用途,不自动暴露给集群外
- 若需对外访问,必须额外创建 Service(如 ClusterIP 或 NodePort)
后续常用操作
部署后,可通过标准命令观察、调整和维护应用。
- 查看状态:
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 验证格式和逻辑。
相关文章
- 泰国成立专门机构,重点管控数据中心对电力、水资源及环境的影响 08-17
- 弹弹堂极武器哪个好 08-17
- 魔兽争霸哪个图更好打 08-17
- 互传app怎么查看发送记录 08-17
- 快对ai怎么查看历史记录-快对作业历史记录怎么删除 08-17
- 希望大家能推荐一款软件,可以直接把DeepSeek生成的代码变流程图,提高办公效率 08-17