前言
略
作用
- 定义一组Pod的期望数量,controller会维持Pod数量与期望数量一致
- 配置Pod发布方式,controller会按照给定策略更新Pod,保证更新过程中不可用额pod数量在限定范围内
- 如果发布有问题,支持"一键"回滚
语法
apiVersion: apps/v1
kind: Deployment
#--------Deployment元信息--------
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
#--------期望Pod数量--------
replicas: 3
#--------Pod的选择器--------
selector:
matchLabels:
app: nginx
#--------Pod模板-------
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
- 更新镜像方法
kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1
set image: 设置镜像
deployment.v1.apps: 资源类型
nginx-deployment: 要更新的Deployment名字
nginx: 要更新的容器名字
nginx:1.9.1: 新的镜像
-
快速回滚方法
kubectl rollout undo deployment/nginx-deployment -
回滚到Deployment某一个版本,需要先查询版本列表
kubectl rollout history deployment.v1.apps/nginx-deployment
kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2
状态机制
管理模式
Deployment只负责管理不同版本的ReplicaSet,由ReplicaSet管理Pod副本数
每个Replicaset对应了Deployment template的一个版本
一个ReplicaSet下的Pod都是相同的版本
Deployment控制器
replicaset控制器
发布模拟
扩容模拟
回滚模拟
结语
… …