Kubernetes 在 CentOS 上的资源调度策略概览

在 CentOS 上,Kubernetes 的调度行为与操作系统无关,核心由 kube-scheduler 完成:监听未绑定 NodeName 的 Pod,经过预选(过滤)—优选(打分)—绑定三个阶段选出最优节点;常见扩展包括节点亲和性/反亲和性、污点与容忍、拓扑分布约束、优先级与抢占、多调度器等,用于满足业务对性能、容错与资源效率的诉求。
核心调度策略与机制
CentOS 场景下的落地配置要点
调度优化与弹性扩缩
示例配置片段
affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: disktypeoperator: Invalues: ["ssd"]podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: ["web"]topologyKey: kubernetes.io/hostname# 节点打污点kubectl taint nodes node-gpu1 accelerator=nvidia:NoSchedule# Pod 容忍tolerations:- key: "accelerator"operator: "Equal"value: "nvidia"effect: "NoSchedule"resources:requests:memory: "256Mi"cpu: "500m"limits:memory: "512Mi"cpu: "1"topologySpreadConstraints:- maxSkew: 1topologyKey: kubernetes.io/hostnamewhenUnsatisfiable: DoNotSchedulelabelSelector:matchLabels:app: web# ResourceQuotaapiVersion: v1kind: ResourceQuotametadata:name: compute-quotanamespace: prodspec:hard:requests.cpu: "10"requests.memory: "20Gi"limits.cpu: "20"limits.memory: "40Gi"# LimitRangeapiVersion: v1kind: LimitRangemetadata:name: default-limitnamespace: prodspec:limits:- default:memory: "512Mi"cpu: "500m"defaultRequest:memory: "256Mi"cpu: "250m"type: Container上述策略与示例可直接用于 CentOS 节点,关键在于:为节点与业务合理打标签、为容器设置合适的 requests/limits、用 亲和/反亲和与拓扑分布 控制布局、以 配额与默认限额 做治理,并配合 HPA/CA 实现弹性。