K8s Планирование DaemonSets
Я хотел бы запланировать модуль на всех узлах кластера. Без исключений. DaemonSet, похоже, выполняет свою работу, когда нет недостатка в ресурсах. Но иногда другие модули планируются на определенных узлах так, что больше не остается ресурсов для планирования модуля DaemonSet.
Каков наилучший способ принудительно планировать модули DaemonSet на всех узлах? Работает на GCP, поэтому самая новая версия доступна 1.11.5
2 ответа
Оказывается, это решается в k8s 1.12 и выше. Они сделали планировщик по умолчанию для обработки наборов демонов.
Похоже, у вас может быть default scheduler
настроен для DaemonSets, а ваши модули не настроены для вытеснения (вытеснение отключено) в конфигурациях kube-scheduler:
apiVersion: componentconfig/v1alpha1
kind: KubeSchedulerConfiguration
algorithmSource:
provider: DefaultProvider
...
disablePreemption: true
По умолчанию disablePreemption: false
так что, если ваши модули не выгружаются, чтобы позволить планированию набора демонов, значит что-то еще не так.
Если вы используете планировщик DaemonSet (по умолчанию на k8s 1.11 или более ранних версиях), модули DaemonSet должны планироваться независимо. (Если нет, то опять что-то не так).