Deployment解释
典型的应用场景包括:
定义Deployment来创建Pod和ReplicaSet
滚动升级和回滚应用
扩容和缩容
暂停和继续Deployment
演示过程
1、生成一个yaml文件 --dry-run尝试运行
kubectl create deployment web --image=nginx --dry-run -o yaml >web.yaml
2、修改yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web
name: web
spec:
#定义2个副本数
replicas: 2
selector:
matchLabels:
app: web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: web
spec:
containers:
#指定nginx版本
- image: nginx:1.14
name: nginx
resources: {}
status: {}
3、创建pod
kubectl apply -f web.yaml
node节点查看镜像版本
4、nginx升级至V1.19版本
kubectl set image deployment web nginx=nginx:1.19
查看升级结果命令
kubectl rollout status deployment web
5、查看升级版本
kubectl rollout history deployment web
6、回退版本
回退上个版本
kubectl rollout undo deployment web
回退指定版本
#此处的2对应查看升级版本中的2
kubectl rollout undo deployment web --to-revision=2
7、弹性扩容
kubectl scale deployment web --replicas 10
#如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展
kubectl autoscale deployment web --min=10 --max=15 --cpu-percent=80