k8s术语之Deployment
Deployment为Pod和Replica Set(下一代Replication Controller)提供声明式更新
您只需要在Deployment中描述您想要的目标状态是什么,Deployment controller就会帮您将Pod和ReplicaSet的实际状态改变到您的目标状态。您可以定义一个全新的Deployment Controller的职责!下文罗列了Deployment对象中覆盖所有的用例。如果 未有覆盖您所有需要的用例,请直接在Kubernetes的代码库中提issue
Deployment典型的使用场景如下:
1.创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程
2.检查Deployment的状态来看部署动作是否完成(pod副本的数量是否达到预期值)
3.更新Deployment以创建新的Pod(如镜像升级)
4.若当前Deployment不稳定则回滚到早先Deployment版本
5.暂停Deployment以便修改多个RodTemplateSpec的配置项,之后再恢复Deployment,进行新发布
6.扩展Deployment以应对高负载
7.查看Deployment的状态,一次作为发布是否成功的指标
8.清理不在需要的旧版本RelicaSets
扩容、缩容
kubectl scale deployment nginx-dp --replicas 2
版本升级
kubectl set image deployment/nginx-dp nginx=nginx:1.7.9
查看历史状态
kubectl rollout history deployment/nginx-dp
查看历史版本信息
kubectl rollout history deployment/nginx-dp --revision=3
回滚
kubectl rollout undo deployment/nginx-dp --to-revision=2