十三. Kubernetes 工作负载
目录一. k8s 工作负载基础解释一. k8s 工作负载基础解释官方文档什么是工作负载:首先工作负载是运行在k8s上的一个应用程序,并不是单指负载均衡使用k8s时一个服务运行在一个Container容器中,一个完整的应用可能需要多个服务容器部署运行,这多个服务容器可能运行在多个pod上,那么用来运行这个完整应用的一组pod,就可以称为一个工作负载工作负载的控制结构可以理解为: 一组pod组成一个完
·
一. k8s 工作负载基础解释
- 官方文档
- 什么是工作负载: 工作负载的控制结构可以理解为: 一组pod组成一个完整的应用,一个工作负载控制这一组pod,一个pod中又控制一组容器,比如通过deploy部署有3个副本的nginx,3个副本可能会部署到3个pod上,每个副本就是一个容器,这3个pod就是一个工作负载
- 简单来说在k8s中可以直接使用pod,或者service部署应用,也可使用工作负载来部署应用,简单来说工作负载就是运行在k8s上的一个完整应用(内部可能包含多个pod,多个服务容器),这些相当于一个状态机,用来控制pod的具体状态和行为k8s提供了多种类型的工作负:
- Deployment:用于创建和更新无状态的应用程序,可以实现Pod的滚动更新和回滚。
- StatefulSet:用于创建和更新有状态的应用程序,可以保证Pod的顺序和持久性。
- DaemonSet:用于在每个节点上运行一个Pod,常用于提供节点级别的服务,如日志收集,监控等。
- Job:用于运行一次性或批量的任务,可以保证任务完成或重试失败的任务。
- CronJob:用于定时运行周期性的任务,类似于Linux中的crontab。
- 那么工作负载的特点时什么,为什么使用工作负载
- 首先有多种类型的工作负载,举例上面几种类型分别可以实现什么功能
- 以Deployment类型工作负载为例,最开始时通过pod直接部署应用时,会发现pod内部的容器可以有异常恢复功能,但是整个pod如果异常宕机则不会有恢复功能,使用Deployment部署pod应用时,可以在spec中设置各种期望状态,设置spec.replicas副本集,底层会期望状态通过ReplicasController副本控制器,ReplicasSet副本集等实现异常恢复滚动升级等功能
- 结合其他监控软件比如Metrics-server,通过工作负载也可以做到动态扩缩容
- 在k8s架构层面存在apiServer, controllerManager控制器管理器,etcd数据库等组件,而controllerManager控制器管理器就可以理解为管理了多个工作负载控制器,apiServer接收操作指令,controllerManager监听apiServer接收操作指令,判断执行的指令属于哪个控制器,例如Deploy或StatefulSet或DaemonSet等等,然后通过对应的控制器处理对应的指令,控制器将指令处理完毕后,将处理后的指令存储到etcd
- 学习工作负载就是学习不同类型的工作负载有什么不同,怎么控制pod的行为
更多推荐
已为社区贡献3条内容
所有评论(0)