概念:

Deployment为Pod和Replica Set(下一代Replication Controller)提供声明式更新
只需要在 Deployment 中描述想要的目标状态,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态,也可以定义一个全新的 Deployment 来创建 ReplicaSet 或者删除已有的 Deployment 并创建一个新的来替换
典型的用例如下:
使用Deployment来创建ReplicaSet,ReplicaSet在后台创建pod,检查启动状态
通过更新Deployment的PodTemplateSpec字段来声明Pod的新状态,这会创建一个新的ReplicaSet,Deployment会按照控制的速率将pod从旧的ReplicaSet移动到新的ReplicaSet中
如果当前状态不稳定,回滚到之前的Deployment revision,每次回滚都会更新Deployment的revision
扩容Deployment以满足更高的负载
暂停Deployment来应用PodTemplateSpec的多个修复,然后恢复上线
根据Deployment 的状态判断上线是否hang住了
清除旧的不必要的 ReplicaSet
deployment.spec官方定义所需字段:

[root@master ~]# kubectl explain deploy.spec.
KIND: Deployment
VERSION: extensions/v1beta1 #现在最新式apps/v1
minReadySeconds
paused #暂停
progressDeadlineSeconds
replicas #replicas
revisionHistoryLimit #保存历史版本数量,用于回滚,默认10
rollbackTo