(三)Kubernetes组件pod

一、pod概念

  1. 自主式pod:一旦死亡 不会进行拉起
  2. 控制器管理的pod:死亡后 控制器进行拉起
    pod:一个pod里面可能有多个容器
    运行pause(跑死),容器共用pause的网络站,共用pause的存储卷,进程不会进行隔离;
    在这里插入图片描述

二、控制器

1、replicationcontroller :用来保证容器应用的副本数始终保持在用户定义的副本数,如果有容器异常退出,会创建新的pod来代替;如果异常多出来的容器也会被自动回收
在新版版的kubernetes中建议使用replicaset来代替replicationcontroller
2、replicaset :和replicationcontroller 没有本质不同 只是名字不同并且relicaset支持集合式的selector;可以使用打标签的方式进行指定集合
3、deployment:虽然一般replicaset 可以独立使用,但是一般还是建议使用1deployment来自动管理replocaset 这样无需担心和其他机制不兼容的问题(比如replicaset不支持rolling-update,但是deployment支持)
deployment流程图
在这里插入图片描述
deployment ---->创建rs------>创建pod
deployment不直接管理pod
5、statufulset:是为了解决有状态服务的问题(对应deployment和replicaset是为无状态服务而设计),其应用场景包括:
(1)稳定的持久化存储,pod重新调度后还能访问到相同的持久化数据,基于PVC实现
(2)稳定的网络标志,pod重新调度后其podname和hostname不变,基于headless service实现(没有cluster ip和service)
(3)有序部署,有序扩展,pod是有顺序的,在部署或者扩展时要依据定义的顺序依次进行,基于init container来实现
(4)有序收缩,有序删除
6、daemonset:确保全部node节点上运行一个pod的副本。当有node加入集群时,也会为他们新增一个pod。当有node从集群移除时,这些pod也会被回收,删除daemonset将会1删除1他们创建的所有的pod

使用daemonset的一些典型用户:
1、运行集群存储daemon,例如在每个node上运行glusterd、ceph
2、在每个node上运行日志收集daemon,例如fluentd、logstash
3、在每个node上运行监控daemon,例如Prometheus node exporter

7、job 负责批处理任务,仅执行一次的任务,他保证批处理任务的一个或者多个pod成功结束
cron job 管理基于时间的job :
(1)在给定时间点只运行一次
(2)周期性在给定时

三、服务发现 service

service服务发现是通过标签进行选择的
在这里插入图片描述

》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!

猜你喜欢

转载自blog.csdn.net/qq_41622739/article/details/113833289