如上所示,定义一个RuntimeClass运行时环境类型,配置overhead的过载属性,指定Pod中每个容器实例运行时最大可使用120Mi的内存容量
如上所示,定义一个Pod,使用事先定义的运行时环境类型runtimeClass,使用overhead过载属性约束Pod内每个容器实例运行时使用的处理器资源以及内存资源
如上所示,设置Pod的延迟调度策略,配置属性条件是schedulingGates,用户可手动删除该延迟调度策略的配置属性条件,Kubernetes集群可即时调度该Pod
如上所示,Pod的拓扑调度策略配置属性或者条件,用于Pod调度工作负载的扩缩容,其中,maxSkew是最大倾斜度,倾斜度是统计学的概念,用于避免调度Pod工作负载时出现Pod在Node节点中不均匀分布的情况,最大倾斜度是指允许出现的最大的不均匀分布的度,topologyKey指定Node节点的标签的key,labelSelector指定调度的Pod的标签
如上所示,存在4个Node服务器节点,两个区zoneA与zoneB,定义一个Pod对象,kubernetes集群已经调度了3个Pod的分布情况,其中,DoNotSchedule表示不符合条件则不调度,topologyKey指定拓扑调度的域是在key的值等于zone,即调度器在以zone为单元的区域内的节点中调度,其均衡计算的统计规则的单元是zone,即zoneA已调度2个Pod,zoneB已调度1个Pod
如上所示,kubernetes集群再增加一个Pod负载的情况下,根据Pod的调度策略条件的约束,则调度器将新调度的mypod部署在zoneB中,才能符合zone之间的maxSkew的最大值是1的倾斜度,假如部署在zoneA,则zoneA=3,而zoneB=1,3-1=2大于最大的倾斜度1,因此,调度的单元以及最大倾斜度的不同,则调度规则也不同
如上所示,定义两个调度约束条件,第一个约束条件的调度单元是zone,第二个约束条件的调度单元是node,则在与的条件下,部署mypod在node4中才能符合两个约束条件
如上所示,在该分布的情况下,Kubernetes根据第一个约束条件部署mypod在zoneB中,根据第二约束条件部署mypod在node2中,则发生部署冲突,则调度器暂停调度mypod
如上所示,在该分布的情况下,nodeAffinity配置属性指定排除了zoneC参与调度,则调度器将mypod调度在zoneB中,而不是调度在zoneC中