Как gitlab-ci работает внутри с gitlab runner? - PullRequest
1 голос
/ 03 ноября 2019

У меня есть несколько конкретных вопросов, касающихся gitlab-ci и runner:

  1. Если мой конкретный бегун настроен в кластере kubernetes, то как зеркальное отображение кода происходит в бегун из репозитория кода Gitlab

  2. Как происходит сборка в бегуне, когда он настроен в кластере kubernetes?

  3. При использовании любого образа докера в моем .gitlab-ci. yml, как эти изображения извлекаются бегуном и как команды, упомянутые в теге «script», выполняются в эти контейнеры Docker? Создает ли бегун модули в кластере kubernetes (где настроен бегун) с изображением, упомянутым в .gitlab-ci.yml, и выполняет команды в этих контейнерах?

  4. Любые дополнительные пояснения или ссылкиУчебный материал о том, как Gitlab бегун работает внутри, высоко ценится.

1 Ответ

1 голос
/ 04 ноября 2019

Я предполагаю, что когда вы говорите, что ваш GitLab Runner сконфигурирован в Kubernetes, вы имеете в виду, что вы используете исполнителя Kubernetes. Я отметил разделы, имеющие отношение к вашим вопросам.

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

Исполнитель Kubernetes позволяет использовать существующий кластер Kubernetes для выполнения шага конвейера / сборки, вызывая API-интерфейс кластера Kubernetes и создавая кластерный API-интерфейс Kubernetes. новый модуль Pod с контейнерами для сборки и обслуживания для каждой работы. (3)

A более подробное представление шагов Бегун принимает:

  • Подготовка: Создайте модуль противкластер Kubernetes. Это создает контейнеры, необходимые для запуска сборки и служб.
  • Предварительная сборка: клонирование, восстановление кэша и загрузка артефактов с предыдущих этапов. Это выполняется на специальном контейнере как часть Pod. (2)
  • Сборка: сборка пользователя.
  • Пост-сборка: создание кэша, загрузка артефактов в GitLab. Здесь также используется специальный контейнер как часть Pod.

Хранилище GitLab для бегунов также может быть вам интересно.

...