56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
|
---
|
|||
|
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
|
|||
|
```
|