2020-08-01 最常用的控制器Deployment

1. Pod与controllers的关系

  • controllers:在集群上管理和运行容器的对象
  • 通过label-selector相关联
  • Pod通过控制器实现应用的运维,如伸缩,滚动升级等
2020-08-01 最常用的控制器Deployment_第1张图片
图片.png

2. Deployment功能与应用场景

  • 部署无状态应用
  • 管理Pod和ReplicaSet
  • 具有上线部署、副本设定、滚动升级、回滚等功能
  • 提供声明式更新,例如只更新一个新的Image

应用场景:Web服务,微服务。

3. YAML字段解析

2020-08-01 最常用的控制器Deployment_第2张图片
图片.png

4. 使用Deployment部署一个应用

创建

kubectl create deployment web --image=nginx:1.14
kubectl get deploy,pods    ---查看创建的deployment,pod

发布

kubectl expose deployment web --port=80 --type=NodePort --target-port=8080 --name=web
kubectl get service

5. 应用升级、回滚、弹性伸缩

升级

kubectl set image deployment/web nginx=nginx:1.15    ---更新版本到1.15

查看升级状态

kubectl rollout status deployment/web    ---查看更新进度
kubectl edit deployment/nginx    ---编辑deployment来更新,编辑保存后会自动更新配置
kubectl edit svc/nginx    ---编辑service来更新,编辑保存后会自动更新配置

回滚

kubectl rollout history deployment/web    ---查看更新历史记录
kubectl rollout undo deployment/web    ---回滚到上一个版本
kubectl rollout undo deployment/web --revision=2    ---回滚到指定版本

弹性伸缩

kubectl scale deployment/web --replicas=10    ---修改pod数量为10

你可能感兴趣的:(2020-08-01 最常用的控制器Deployment)