Каков наилучший способ монтировать файлы, созданные одним модулем в другом модуле (до его запуска) на другом узле в GCP? - PullRequest
1 голос
/ 26 сентября 2019

У меня есть простой случай использования.Я пытаюсь развернуть два модуля на двух разных узлах в Kubernetes.Pod A - это сервер, который создает файл abc.txt после получения запроса API.Я хочу смонтировать этот файл abc.txt на Pod B.

Если файл jhsdiak.conf (имя этого файла генерируется случайным образом) отсутствует на pod B до его запуска, pod B создаст свой собственный файл по умолчанию.Следовательно, чтобы избежать этого, файл должен быть смонтирован на Pod B перед его запуском.

Вот что я пробовал

  • Общий том с использованием динамически подготовленного PVC -> ThisПодход работает нормально, если оба модуля созданы на одном узле.Не иначе, поскольку GCP не поддерживает ReadWriteMany.
  • Использование Kubectl CP для копирования файлов из Pod A на путь к хосту, а затем создание конфигурационных файлов / секретов для монтирования его на Pod B -> Этот подход не работает, так какимя файла jhsdiak.conf генерируется случайным образом.
  • InitContainers -> Я не уверен, как я могу использовать контейнер init для перемещения файлов из одного модуля в другой.
  • Использование постоянного хранилища NFS -> Я еще не пробовал, но мне кажется, что нужно просто переместить один файл между модулями.

Есть ли лучший или более эффективный способ решения этой проблемы?

1 Ответ

0 голосов
/ 26 сентября 2019

Аналогичным решением является использование Cloud Storage для хранения ваших файлов.

Но у меня есть другое решение, кроме "file".Создайте тему PubSub и вставьте в нее свои файлы с помощью Pod A.Создайте подписку по запросу и опрашивайте ее с помощью Pod B.

. Вы можете достичь того, чего хотите, я имею в виду отправку данных из А в В, и вам не нужно беспокоиться о файловой системе.

Если ваш кластер совместим с Knative, решение для обработки событий может помочь вам оставаться внутри кластера (если это необходимо)

...