Как я могу получить файл из одноразового процесса в Kubernetes? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть тестовый процесс, который выдает файл в качестве вывода.

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

Как правильно сделать это в Кубернетес / Хелм?

Процесс сборки имеет доступ к kubectl и helm инструментам CLI.

У меня есть требование не использовать kubectl exec, потому что настройки кластера не разрешают его.

Некоторые детали:

Мне удалось настроить одноразовый процесс, используя Pod.

Я настроил процесс для сохранения выходного файла в монтируемом томе, который монтируется на томе emptyDir.

Я не могу понять, как получить выходной файл.

Я пытался kubectl cp, но не могу заставить его работать (такого файла или каталога нет).

Я не могу понять, как проверить содержимое остановленного контейнера.

Я не могу понять, как увидеть, что находится в томе.

kubectl logs показывает, что процесс тестирования прошел успешно. Файл создается в контейнере и хранится в ожидаемом месте.

Быстрое обновление:

В моей локальной среде мини-кубов мне удалось настроить постоянный том и скопировать выходной файл обратно в файловую систему хоста. Я попробую это дальше в среде Дженкинса.

Вот вывод kubectl cp в моей локальной (boot2docker) среде:

$ kubectl cp my-pod:/home/node/output . -c mycontainer
error: home/node/output no such file or directory

/home/node/output - это путь volumeMount внутри контейнера.

1 Ответ

0 голосов
/ 18 мая 2018

У меня есть требование не использовать kubectl exec, поскольку настройки кластера этого не позволяют.

Без команды kubectl exec я могу предложить сделать это следующим образом:

  1. Запустите тест как Задание внутри кластера.
  2. Используйте общий том, например, NFS или SMB, для хранения вашего файла.
  3. Получитьфайлы из общего тома, которые вы можете подключить к вашей системе сборки.

Кроме того, многие системы сборки имеют хранилище артефактов, и это может быть лучшим вариантом для хранения результатов тестирования.

...