Артефакты Kubernetes + Gitlab CI: какой объем я должен использовать? - PullRequest
0 голосов
/ 23 января 2019

В моем кластере Kubernetes работает конвейер CI Gitlab.

Когда тесты не пройдены, мне нужно получить скриншоты и журналы приложения из модуля, в котором оно запускалось, чтобы они были доступны там, где находится Gitlab.Runner ожидает их.

Я попытался kubectl cp <namespace>/<podname>:/in-pod-path /local/path скопировать файлы из остановленного модуля (с установкой команды tar в моем образе Docker), но это пока не поддерживается .

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

Мне интересно какой том я должен использовать , зная, что у меня есть 3 рабочих куба, мне не нужен этот том, чтобы быть постоянным во времени, больше разделять между узлами?

Я ожидаю развернуть этот том перед развертыванием модуля, на котором выполняются мои тесты при монтировании этого тома.Когда обнаруживается сбой тестирования, я извлекаю артефакты в нужное место и удаляю модуль и том.

1 Ответ

0 голосов
/ 23 января 2019

Можно попытаться определить PVC с режимом доступа ReadWriteMany, чтобы разделить объем между несколькими модулями.
См. " Как разделить хранилище между модулями Kubernetes? "

Это все еще будет постоянный том (для поддержки этого) со всеми модулями, запланированными для узла с этим томом.

Существует несколько типов томов, которые подходят для этого и не привязаны к какому-либо облачному провайдеру:

  • NFS
  • RBD (Ceph Block Device)
  • CephFS
  • GlusterFS
  • Объемы Portworx

Но:

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

Тогда эфемерно хранилище возможно:

Kubernetes версии 1.8 представляет новый ресурс, эфемерное хранилище для управления локальным эфемерным хранилищем. В каждом узле Kubernetes корневой каталог kubelet (/var/lib/kubelet по умолчанию) и каталог журналов (/var/log) хранятся в корневом разделе узла.
Этот раздел также используется и используется модулями через emptyDir тома, журналы контейнеров, слои изображений и слои, доступные для записи в контейнерах.

В вашем случае вам понадобится эфемерное хранилище времени выполнения .

...