Kubernetes 在 Debian 上的资源调度策略
一 调度流程与总体原则
二 核心调度策略与配置要点
三 面向 Debian 的优化建议
sysctl -p 生效;为 CNI 选择合适插件(如 Calico/Flannel/Weave),并根据网卡支持设置 MTU 1500/9000,降低网络抖动与丢包对调度与业务的影响。四 快速配置示例
kubectl label node node1 disktype=ssdkubectl taint nodes node2 accelerator=nvidia:NoScheduleresources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "2"
memory: "4Gi"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: disktype
operator: In
values: ["ssd"]
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values: ["web"]
topologyKey: kubernetes.io/hostname
tolerations:
- key: "accelerator"
operator: "Equal"
value: "nvidia"
effect: "NoSchedule"
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
apiVersion: kubescheduler.config.k8s.io/v1beta3
kind: KubeSchedulerConfiguration
profiles:
- schedulerName: default-scheduler
plugins:
score:
enabled:
- name: NodeResourcesBalancedAllocation
weight: 2
kubectl apply -f kube-scheduler-config.yaml,并在 kubelet 启动参数中通过 --config 指定该配置文件。