демонсеты не про HA деплоймент с равномерной балансировкой по нодам, а скорее об запуске одного пода на всех или наборе нод. Например логгер или какой-то мониторинг агент, который надо чтоб ранился на всех нодах. А в данном контексте это должен быть обычный деплоймент даже без каких-то особых ухищрений. Планировщик по умолчанию и так попытается разнести поды по разным нодам, учесть загрузку и тд. А если уже сильно надо гарантировать что поды будут жить на разных нодах и никак иначе, то тут нужно podAntiAffinity по topology=hostname:
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- myapp
topologyKey: "kubernetes.io/hostname"
...
При чем, если кол-во теоретичски подов будет больше количества нод, то надо requiredDuring заменить на preferredDuring а то часть подов планировщик не сможет заассайнить.