Deployment, 水平扩展/收缩.
- 依赖 ReplicaSet
apiVersion: apps/v1kind: ReplicaSetmetadat:name: nginx-setlabels:app: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.7.9


使用命令扩容:
$ kubectl scale deployment nginx-deployment --replicas=4
创建 deployment:
$ kubectl create -f dep.yaml --record
- desired: 期望的 pod 数
- current: 处于 running 状态的 pod 数
- up-to-date: 处于最新版本的 pod 数
- avaliable: 同时处于 running, 最新版本, ready 状态的 pod 数
实时查看 deployment 对象状态:
$ kubectl rollout status deployment/nginx-deployment
要使用滚动更新, 那么需要使用 Pod 的健康检查机制, 而不是简单依赖容器的 running 状态.
- RollingUpdateStrategy 配置起停比例

- maxSurge 指定的是除 desired 数量外’在—次滚动更新中Deployment控制器还可以创建多少新Pod;
- 而 maxUnavailable 指的是在一次滚动更新中Deployment控制器可以删除多少旧 Pod
- 可以使用百分比形式: maxUnavailable=50%, 50%*desired

- 一个 ReplicaSet 代表一个版本
回滚到上一个版本:
$ kubectl rollout undo deployment/nginx-deployment
回到更早之前的版本:

$ kubectl rollout undo deployment/nginx-deployment --to-revision=2
如果把 spec.revisionHistoryLimit 设置为0, 那么就不能进行回滚操作了
- 限制了 deployment 所控制的 replicaSet 的数量
