Я пытаюсь понять, является ли хорошей практикой использование правила podAntiAffinity
, чтобы предпочитать, чтобы Pod
в моем Deployment
не планировалось на том же узле.Таким образом, распределение Pod
в моем кластере Kubernetes.
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: "app.kubernetes.io/name"
operator: In
values:
- "foo"
topologyKey: "kubernetes.io/hostname"
Документация предлагает избегать использования podAntiAffinity
для кластеров с сотнями узлов, что предполагает наличиеэто сказывается на производительности.
Кроме того, если я ими не пользуюсь, разве поведение планировщика по умолчанию не распространяется на Pod
в любом случае?
Полагаю, это такжеимеет значение, для чего Deployment
.Например, имеет смысл использовать podAntiAffinity
для кеша Redis, но разве не имеет смысла использовать DaemonSet
для этого случая?Кроме того, какова рекомендация для веб-сервера Pod
?