Не удается запустить Flink в автономном режиме Kubernetes с помощью JobManager HA

#kubernetes #apache-flink

Вопрос:

Я запускаю Apache Flink в автономном режиме Kubernetes (sesion) без менеджера заданий. Но мне нужно развернуть диспетчер заданий HA, потому что только в режиме HA Flink может быть постоянным (может сохранять задания после перезапуска диспетчера заданий). Flink работает в выделенном пространстве имен kubernetes, и у меня есть разрешения только на пространство имен.

HA включены с помощью этой статьи: https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/ha/kubernetes_ha/

и я использую файлы yaml из этой статьи: https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/resource-providers/standalone/kubernetes/#kubernetes-high-availability-services

У меня, например, есть пространство имен k28s с именем flink-пространство имен. В этом пространстве имен, которое я создал:

  • Учетная запись службы с именем flink-sa
  • разрешения ведьмы ролей для создания/редактирования конфигурационных карт в этом пространстве имен

таким образом, у этого ServiceAccount есть разрешения на создание/редактирование конфигурационных карт, но только в этом пространстве имен.

После развертывания JobManager не может запуститься и выдает ошибку:

Вызвано: io.fabric8.kubernetes.клиент.Исключение KubernetesClientException: карты конфигурации «flink-restserver-лидер» запрещены: Пользователь «система:учетная запись службы:пространство имен flink:flink-sa» не может просматривать карты конфигурации ресурса» в группе API «» в пространстве имен «по умолчанию»

Имея в виду, что учетная запись службы с Flink используется для управления конфигурационными картами, попробуйте создать конфигурационную карту в пространстве имен «по умолчанию», а не в пространстве имен «flink-пространство имен».

Кто-нибудь знает, как настроить flink для управления конфигурационными картами в указанном пространстве имен ?

Ответ №1:

Проблема решена — возможность сообщить, что Flink в пространстве имен kubernetes запущен, я нашел в исходном коде Flink. Итак, чтобы решить эту проблему, вы должны установить это в конфигурации:

пространство имен kubernetes.: ВАШЕ ИМЯ ПРОСТРАНСТВА ИМЕН