У меня есть несколько кластеров Kubernetes с разными #of узлов в каждом. И в моем развертывании конфигурации есть «реплики: # узлы». Не существует конкретной конфигурации, настроенной для планирования этого модуля, но после развертывания я вижу странное поведение с точки зрения распределения модулей по узлам.
Пример:
Для кластера из 30 узлов (30 реплик) все 30 реплик подов распределены только по 25 узлам, а остальные 5 узлов идеально подходят для кластера. Подобные случаи для многих других различных кластеров, и это количество меняется в каждом новом / передислокация.
Вопрос:
Я хочу распределить реплики своих модулей по всем узлам. Если я установил "replicas: #nodes", то у меня должна быть одна реплика пода в каждом узле. Если я увеличиваю / удваиваю количество реплик, оно должно распределяться равномерно. есть ли какая-то конкретная конфигурация в развертывании yaml для Kubernetes?
Конфигурация с узлом AntiAffinity, но он по-прежнему ведет себя как указано выше. Пробовал с «requiredDuringSchedulingIgnoredDuringExecution», и тот действительно развернул по одному модулю на каждом узле, но если я увеличиваю количество реплик или какой-либо узел выходит из строя во время развертывания, тогда все развертывание терпит неудачу.
metadata:
labels:
app: test1
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- test1
topologyKey: kubernetes.io/hostname
podAntiAffinity
сpreferredDuringSchedulingIgnoredDuringExecution
, что взвешивает планирование, чтобы не помещать модуль на узел, где модули с определенной меткой уже существуют. Это не сбой планирования, если невозможно запланировать на другом узле, просто предпочитает немного больше не делать этого. - person Joachim Isaksson   schedule 21.12.2019failure-domain
использует AZ, а это означает, что они не будут распределены равномерно. - person Andrew   schedule 06.01.2020