- 什么是controller
- Pod和Controller关系
- Deployment控制器应用场景
- 使用deployment部署时yaml中字段说明相互关系建立
- Deployment控制器部署应用
- 导出yaml文件
- 使用yaml部署应用
- 对外发布(暴露端口号)
- 升级回滚
- 应用升级
- 应用回滚
- 弹性伸缩
确保预期的pod副本数量,确保所有的node运行同一个pod
一次性任务和定时任务
无状态应用部署
无状态应用部署
- 在集群上管理和运行Pod的对象
- Pod是通过Controller实现应用运维,比如伸缩和滚动升级等等
- Pod和Controller之间通过label标签建立关系
- 部署无状态应用(web,nginx等)
- 管理Pod和ReplicaSet
- 部署,滚动升级等功能
** 应用场景:web服务,微服务
pod和cotroller通过label和selector
kubectl create deployment web --image=nginx // 只是一种测试 kubectl create deployment --image=ngix -o yaml >web01.yaml //导出到yaml文件中,也可以修改 kubectl apply -f web.yaml //使用yaml文件应用部署 kubectl get pods //查看pod信息导出yaml文件
kubectl create deployment --image=ngix -o yaml >web01.yaml使用yaml部署应用
kubectl apply -f web.yaml //使用yaml文件应用部署 kubectl get pods //查看pod信息对外发布(暴露端口号)
kubectl expose deployment web01 --port=80 --type=NodePort --target-port=80 --name=web02 -o yaml > web02.yaml kubectl get pods,service //查看对外端口号,slave节点也可以访问
最后使用slave节点访问结果如下:
kubectl set image deployment [pod名] nginx=nginx:1.15 //将镜像从1.14升级到1.15
升级的过程:
使用副本替换,并不是停止原来的1.14版本即服务不中断,而是下载新的1.15再替换掉正在运行的旧版本,依次替换。
过程
docker中的镜像,我们发现docker下载了nginx的1.15版本
查看升级状态
kubectl rollout status deployment web01 //查看升级状态应用回滚
将nginx回滚到1.14
查看历史版本
kubectl rollout history deployment web01 // 查看历史升级版本
回到上一个版本
kubectl rollout undo deployment web01 //还原到上一个版本
回滚到指定的版本中去
kubectl rollout undo deployment web01 --to-version=2 //回滚到指定版本弹性伸缩
kubectl get pods //查看pod状态 kubectl scale deployment web01 --replicas=10 //伸缩的值
这个就是弹性伸缩特点,提供多种服务。



