Настройка селектора узла для задачи потока данных весеннего облака и потоковых развертываний в kubernetes - PullRequest
0 голосов
/ 26 июня 2019

Мы хотим исправить все наши весенние облачные задачи потока данных и потоковые развертывания на конкретном наборе узлов.

У меня это работает вручную для примера задачи, например

task launch test-timestamp --properties "deployer.*.kubernetes.deployment.nodeSelector=env:development"

(это не было очевидно, поскольку документация здесь https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#configuration-kubernetes-deployer, похоже, подразумевает, что ключ - это просто nodeSelector, а не deploy.nodeSelector)

Это корректно добавляет селектор узлов в pod yaml для kubernetes.

Но я хочу, чтобы это было установлено автоматически, т.е. с использованием task.platform.kubernetes.accounts.default свойств в конфигурации сервера SCDF.

Я пытался:

task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development

и

task.platform.kubernetes.accounts.default.nodeSelector: env:development

но ни один из них не работает. Как правильно настроить это?

Тот же вопрос для потоковых развертываний через шкипер.

Также, как мне настроить это для запланированных задач?

1 Ответ

1 голос
/ 27 июня 2019

Извините, что вам пришлось попробовать несколько вариантов, чтобы докопаться до нахождения правильного свойства развертывателя, которое действительно работает.

Как правило, из оболочки / пользовательского интерфейса SCDF токен deployer является краткой формой для свойства spring.cloud.deployer.kubernetes. Повторять это нужно, когда у вас есть больше свойств для развертывания для настройки в потоке / задаче, поэтому у нас есть краткая форма по этой причине.

Тем не менее, nodeSelector не является свойством уровня развертывания со значением по умолчанию. Он доступен только как свойство уровня развертывания, так что это означает, что только доступен в качестве опции для каждого развертывания.

Другими словами, он не доступен в качестве опции для "глобальной" конфигурации, поэтому task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development не учитывается. То же самое относится и к Streams через Skipper.

Это может быть улучшено, хотя. Я создал spring-cloud / spring-cloud-deployer-kubernetes # 300 для отслеживания - не стесняйтесь подписываться на уведомления. И потоки, и задачи должны иметь возможность использовать его в качестве глобальной конфигурации. После объединения PR вы сможете попробовать его с изображением SCDF 2.2.0.BUILD-SNAPSHOT.

Что касается реализации K8s-планировщика, у нас пока нет поддержки nodeSelectors. Я создал spring-cloud / spring-cloud-scheduler-kubernetes # 25 - мы могли бы сотрудничать в PR, если вы хотите перенести функциональность из K8s-deployer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...