1、控制器的类型
【Deployment】
适合部署无状态的应用服务,用来管理pod和replicaset,具有上线部署、副本设定、滚动更新、回滚等功能,还可提供声明式更新
例如只更新一个新的Image
1、Deployment的概述
2、Deployment控制器的测试使用
编写配置清单:Deployment-nginx.yaml
3、Deployment(查看详细信息)
查看两种方式:describe或者edit
4、更新
一般对应用程序升级或者版本迭代时,会通过 Deployment 对 Pod 进行滚动更新。
5、回滚
当新版本不稳定时,可以对其进行回滚操作,默认情况下,所有 Deployment 的 rollout 历史都保留在系统中, 可以随时回滚
6、扩容
K8S 中支持横向扩容的方法
暂停部署与取消暂停部署
【SatefulSet】
StatefulSet 是用来管理 有状态服务,为了解决有状态服务的问题,而 Deployment 和 ReplicaSet 更适用于无状态服务的部署
1、SatefulSet概述
1》适合部署有状态应用,解决Pod的独立生命周期,保持Pod启动顺序和唯一性,
2》稳定,唯一的网络标识符,持久存储(例如:etcd配置文件,节点地址发生变化,将无法使用)
3》有序,优雅的部署和扩展、删除和终止(例如:mysql主从关系,先启动主,再启动从)
4》有序,滚动更新
StatefulSet作为Controller为Pod提供唯一的标识, 它可以保证部署和scale的顺序
StatefulSet是为了解决有状态服务的问题(对应Deployments和Replica Sets是为无状态服务而设计)
常规的service服务和无头服务的区别
2、SatefulSet的应用场景
【Job】
Job 负载批处理任务,仅执行一次的任务,它能够保证批处理任务的一个或者多个 Pod 成功执行结束
1、Job特点
jop的测试使用
【CronJob】
CronJob控制器以Job控制器资源为其管控对象,并借助它管理pod资源对象,Job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但CronJob可以以类似于Linux操作系统的周期性任务作业计划的方式控制其运行时间点及重复运行的方式。也就是说,CronJob可以在特定的时间点(反复的)去运行job任务
1、CronJob的资源清单文件
2、cronjob的使用
【DaemonSet】(DS)
1、简述ds
2、DaemonSet控制器的特点
3、DaemonSet的资源清单文件
【Horizontal Pod Autoscaler】(HPA)
1、 HPA的概述
我们已经可以实现通过手工执行命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标–自动化、智能化。 Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器
2、 HPA测试
部署HPA
测试: