Kuberbetets(K8S)—— Day 4 K8S 控制器

Kuberbetets(K8S)——  Day 4 K8S Pod及其控制器

本章内容:KubernetesPod及其控制器

学习途径:尚硅谷Kubernetes教程(BIlibili平台)


Pod:由一个或者多个容器组成的可被调度的最小单位。其里面的一个或者多个容器共享整个Pod的存储、网络等资源(CPU/内存除外)。组内成员可以通过localhost进行互相访问;

K8S中Pod的分类:

自主式Pod:自主式Pod不受控制器控制,也就是pod自己去控制自己,防止pod被控制器杀死。

由控制器管理的Pod:Pod的创建、删除、运行、维护等操作都由控制器来统一进行控制;

控制器:

Replication controller:用来确保容器应用的副本数始终保持在用户定义的副本数,即使有容器异常退出也会重新创建新的Pod来代替,同样多出的Pod也会被回收;

ReplicaSet:基本功能同Replication controller相同,但是ReplicaSet支持几何式的selector,也就是支持组管理,可以进行批量操作;

Deployment:虽然ReplicaSet支持独立运行,但是一般还是建议使用Deployment来对ReplicaSet进行维护,来对其进行自动管理。这样就无需担心他的某些不兼容问题(例如:RS不支持rolling-update),Depolyment虽然可以进行自动管理,但是不能创建Pod;

Horizontal Pod Autoscaling:仅适用于ReplicaSet和Deployment,V1版本中仅支持根据Pod的CPU使用情况来进行扩容,在Vlalpha版本中,支持根据内存或者自定义的规则进行metric扩缩容,但是目前还不稳定;HPA会检测目标Pod,如果CPU利用率达到了警戒值(例如CPU使用率达到了85%),就会进行自动扩容,当达到最大限度(预设:max:10,min:2)或CPU使用率低于警戒值,会自动停止扩容。同样的缩容也一样;

以上控制器都是为无状态服务问题而进行设计的,

StatefulSet:其应用场景:

  • 稳定的持久化存储,即Pod重新调用后还能正常访问到相同的持久化数据,基于PVC实现;
  • 稳定的网络标志:即Pod重新调度后,其PodName和host那么不变,基于Headless Service实现;
  • 有序部署,有序扩张,即Pod是有顺序的,再部署扩展的时候要依据定义的顺序依次进行(在下一个Pod运行之前,其前面所有的Pod都在running状态或者ready状态,基于init containers实现);
  • 有序收缩,有序深处;

DaemonSet:确保全部Node上(或者一些)运行一个Pod副本,当Node加入集群是也会为其自动新增一个Pod,当有Node从集群中移除时,这些Pod也会被回收,删除DaemonSet将会删除其所创建的所有Pod,典型用法:

  • 运行集群存储Daemon,离去在每个Node上运行glusterd、Ceph
  • 在每个Node上运行日志收集Daemon,例如:fluented、log stash
  • 在每一份Node上运行监控Daemon,例如Dromentheus、Node Exporter

Job:负责批处理任务,仅执行一侧任务,他保证批处理的任务一个或者多个成功结束;

Cron Job:管理基于事件的Job,在给定的时间运行一次,周期性的运行;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值