tgoop.com/devopsslib/3350
Create:
Last Update:
Last Update:
🚀 Разбираем Node Affinity в Kubernetes
Node Affinity — это механизм, который позволяет задавать гибкие правила для размещения подов, основываясь на метках узлов. В отличие от nodeSelector, он поддерживает мягкие (preferred) и жёсткие (required) правила
🛠 Как это работает:
В Kubernetes есть два ключевых типа правил:requiredDuringSchedulingIgnoredDuringExecution
— жёсткие требования, под не будет запущен, если узел не соответствует правилам.preferredDuringSchedulingIgnoredDuringExecution
— мягкие предпочтения, Kubernetes попытается запустить под на узле, который соответствует описанию предпочтений, но если такого нет, выберет любой свободный.
Пример YAML-манифеста:
apiVersion: v1
kind: Pod
metadata:
name: gpu-app
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "gpu"
operator: "In"
values:
- "true"
containers:
- name: app
image: my-gpu-app
Этот под будет запускаться только на узлах, у которых есть метка gpu=true.
📄 Подробнее в документации