1、Deployment控制器应用场景
部署无状态应用
管理Pod和ReplicaSet
部署,滚动升级
弹性伸缩等功能
2、Deployment控制器部署应用
2.1 应用部署
(1) 导出yaml文件
kubectl create deployment web01 --image=nginx --dry-run -o yaml > web01.yaml
(2) 使用yaml部署应用
kubectl apply -f web01.yaml
(3) 查看容器是否为running
kubectl get deployments.apps/web01
2.2 应用发布
(1) 导出yaml文件 注意名称
kubectl expose deployment web01 --port=80 --type=NodePort --target-port=80 --name=web01-server --dry-run -o yaml > web01-server.yaml
(2) 使用yaml部署
kubectl apply -f web01-server.yaml
(3) 查看端口号
$ kubectl get svc/web01-server
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
web01-server NodePort 10.109.4.139 <none> 80:32149/TCP 3m17s
```
(4) 浏览器访问http://任何node节点IP:32149
3、升级回滚
(1) 升级
kubectl set image deployment web01 nginx=nginx:1.15 --record=true
--record=true kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision
(2) 回滚到上一个版本
kubectl rollout undo deployment web01
(3) 回滚到指定版本
查看回滚版本
kubectl rollout history deployment web01
回滚到指定版本
kubectl rollout undo deployment web01 --to-revision=1
4、 弹性伸缩
略