Kubernetes的Pod调度决定了工作负载的运行位置。本文详解各种调度策略。 ## nodeSelector 最简单的节点选择方式: ```yaml apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: nodeSelector: accelerator: nvidia-tesla-k80 containers: - name: app image: myapp:latest ``` ## nodeAffinity 更灵活的节点亲和性: ```yaml spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: ["us-east-1a", "us-east-1b"] preferredDuringSchedulingIgnoredDuringExecution: - weight: 80 preference: matchExpressions: - key: node-type operator: In values: ["high-memory"] ``` ## Taint与Toleration ```bash kubectl taint nodes node1 key=value:NoSchedule ``` ```yaml spec: tolerations: - key: "key" operator: "Equal" value: "value" effect: "NoSchedule" ``` 合理配置调度策略可以优化资源利用、提高可用性和满足合规要求。