--- title: "Deployment" --- Deployment为Pod和ReplicaSet提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationController来方便的管理应用。典型的应用场景包括: - 定义Deployment来创建Pod和ReplicaSet - 滚动升级和回滚应用 - 扩容和缩容 - 暂停和继续Deployment 比如一个简单的nginx应用可以定义为 ```yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 ``` 扩容: ``` kubectl scale deployment nginx-deployment --replicas 10 ``` 如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展: ``` kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80 ``` 更新镜像也比较简单: ``` kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 ``` 回滚: ``` kubectl rollout undo deployment/nginx-deployment ```