AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
predicate->priority->select 特殊的调度规则 taints 污点,定义在节点之上, tolerations 容忍,定义在pod之上 预选策略,优选策略 github.com/kubernetes-pkg-scheduler-algorithm/{predicates,priorities} 调度器: 预选策略:kubernetes/pkg/scheduler/algorithm/predicates/ CheckNodeCondition: GeneralPredicates HostName:检查pod对象是否定义了pod.spec.hostname PodFitsHostPorts: pods.spec.containers.ports.hostport MatchNodeSelector: pods.spec.nodeselector PodFitsResorces:检查pod的资源需求是否能被接点所满足 NoDiskConflict:检查pod依赖的存储卷是否满足需求 PodToleratesNodeTaints:检查pod.spec.tolerations可容忍的污点是否万全包含节点上的污点 PodToleratesNodeNoExecuteTaints: 不能执行的污点,默认不启用 CheckNodeLabelPresence: 检查标签存在性,默认不启用 CheckServiceAffinity:有些几点运行了service的pod,有些没有,新建的pod刚好属于这个service,调度到已有的这个service的pod所在的节点上。默认不启用 MaxEBSVolumeCount MaxGCEPDVolumeCount MaxAzureDiskVolumeCount CheckVolumeBinding: NoVolumeZoneConflict: CheckNodeMemoryPressure检查节点内存资源是否在压力过大的状态 CheckNodePIDPressure检查节点PID资源压力大(进程过多) CheckNodeDiskPressure磁盘 MatchInterPodAffinity 优先函数:kubernetes/pkg/scheduler/algorithm/priorities/ LeastRequested: (cpu((capacity-sum(requested))*10/capacity)+memory((capacity-sum(requested))*10/capacity))/2 BalancedResourceAllocation: CPU和内存资源被占用率相近的胜出; NodePreferAvoidPods: 节点注解信息“scheduler.alpha.kubernetes.io/preferAvoidPods” TaintToleration:将Pod对象的spec.tolerations列表项与节点的taints列表项进行匹配度检查,匹配条目越,得分越低; SeletorSpreading: InterPodAffinity: NodeAffinity: MostRequested: NodeLabel: ImageLocality:根据满足当前Pod对象需求的已有镜像的体积大小之和 节点选择器:nodeSelector,nodeName,强约束 节点亲和调度:nodeAffinity taint的effect定义对pod排斥效果: NoSchedule:仅影响调度过程,对现存的pod对象不产生影响; NoExecute:既影响调度过程,也影响现在的pod对象;不容忍的pod对象将被驱逐 容器的资源需求,资源限制 requests:需求,最低保障; limits:限制,硬限制; CPU: 1颗逻辑cpu 1=1000,millicores 500m=0.5CPU 内存: E、P、T、G、M、K Ei、Pi ``` resources: limits: cpu: "2" memory: 1Gi requests: cpu: "100m" memory: "256Mi" ``` QoS: Guranteed:每个容器 同时设置CPU和内存的requests和limits. cpu.limits=cpu.requests memory.limits=memory.request Burstable: 至少有一个容器设置CPU或内存资源的requests属性 BestEffort:没有任何一个容器设置了requests或limits属性;最低优先级别;