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
|
||
```
|