Как настроить поток данных Spring Cloud для выполнения задач в отдельном пространстве имен для каждой задачи?

#kubernetes #spring-cloud-dataflow #spring-cloud-task #microk8s

#kubernetes #spring-cloud-поток данных #spring-cloud-task #microk8s

Вопрос:

Я использую поток данных Spring Cloud для организации выполнения приложений tasks, и мне нужно запускать каждое приложение task в выделенном пространстве имен с его собственной квотой ресурсов (некоторые могут быть гарантированы, а некоторые могут быть загружены).).

Следуя руководству по настройке задач Spring Cloud Data Flow и используя изображение timestamp-task docker, у меня есть следующая конфигурация в моем server-config.yml

     spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
                  default:
                    limits:
                      memory: 1024Mi
                  my-dedicated-ns:
                    namespace: my-dedicated-ns
                    imagePullPolicy: Always
                    limits:
                      memory: 2048Mi
  

Однако, когда я запускаю задачу с аргументом --platformName=my-dedicated-ns , задача по-прежнему выполняется в пространстве имен по умолчанию, в котором запущен scdf (я назвал его spring-cloud-dataflow).

Глядя на детали выполнения, я вижу, что —

 --platformName: my-dedicated-ns
--spring.cloud.data.flow.platformname: default
--spring.cloud.task.executionid: 9
  

Вопрос —

  • Как я могу заставить задачу выполняться в my-dedicated-ns пространстве имен?
  • что такое spring.cloud.data.flow.platformname и имеет ли это значение? Я пытаюсь установить его в аргументах задачи, но он всегда отображается по умолчанию.

Редактировать: запуск kubectl describe в модуле задач, который я получаю —

 kubectl describe pod/timestamp-task-9n5xq9o8y0
...
Name:         timestamp-task-9n5xq9o8y0
Namespace:    spring-cloud-dataflow

...

Containers:
  timestamp-task-z95kxp4r84:
    
    Image:         springcloudtask/timestamp-task
    
    Args:
      --platformName=my-dedicated-ns
      --spring.cloud.data.flow.platformname=default
      --spring.cloud.task.executionid=7

  

Что предполагает, что сервер потока данных Spring Cloud всегда выполняет задачи в одном и том же пространстве имен, если да, то --platformName для чего?

Ответ №1:

Название платформы работает просто отлично, мне пришлось перезапустить сервер потока данных Spring Cloud для нового определения пространства имен в

 spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
  

чтобы вступить в силу.