Как создать дополнительный контейнер в кластере Kubernetes для сканирования входящих объектов и копирования файла в другой контейнер? - PullRequest
0 голосов
/ 26 февраля 2020

По сути, я хочу создать контейнер с коляской для сканирования входящих объектов в моем кластере и копирования сгенерированного файла в другие контейнеры.

Как мне этого добиться?

1 Ответ

1 голос
/ 27 февраля 2020

Вы можете написать специальную программу Kubernetes, которая называется controller . Это обычная программа, работающая в обычном модуле, которая использует Kubernetes API для просмотра некоторого набора объектов и изменения некоторого другого набора объектов.

Основной l oop из контроллер, который делает то, что вы описываете, может быть довольно простым:

  1. Наблюдайте все объекты Ingress (в пространстве имен, соответствующие некоторым меткам, ...)
  2. Сохраняйте некоторое состояние текущего объединенного набора Ingresses в обычных переменных в вашем контроллере. (Если контроллер выходит и перезапускается, наблюдение начнется с воспроизведения всех текущих объектов в новом процессе контроллера.)
  3. Создайте файл, который вы хотите вывести в объект ConfigMap.

Тогда другие модули могут монтировать ConfigMap, как и любой другой ConfigMap, просто он принадлежит вашему контроллеру, а не обслуживается вручную.

Этот процесс не очень подходит для контейнера "sidecar"; он запускает в основном полностью независимый процесс, который не тесно связан с конкретным модулем c. Это также позволяет избежать попыток вручную модифицировать контейнерные файловые системы, что дает вам отказоустойчивость несколькими способами: при запуске нового модуля он автоматически получает существующее содержимое ConfigMap; если ваш контроллер каким-то образом выходит из строя, модули могут продолжать использовать старое содержимое ConfigMap до его перезапуска.

...