Kubernetes Pod调度策略详解
3 阅读
预计 3 分钟
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"
```
合理配置调度策略可以优化资源利用、提高可用性和满足合规要求。
0 条评论 欢迎参与讨论