Установка GitLab Agent
Приложение GitLab Agent используется для подключения кластера Managed Service for Kubernetes к GitLab. Вы можете развернуть приложение как в инстансе Yandex Managed Service for GitLab, так и в standalone-инстансе GitLab.
GitLab Agent позволяет:
- Работать с кластерами Managed Service for Kubernetes, находящимися за NAT.
- Получать доступ к API кластера Managed Service for Kubernetes в реальном времени.
- Получать информацию о событиях в кластере Managed Service for Kubernetes.
- Включить кеш объектов Kubernetes, которые обновляются с очень низкой задержкой.
Примечание
GitLab Agent не исполняет конвейеры CI/CD. Для этой цели установите приложение GitLab Runner.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
. -
Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
-
Подготовьтесь к установке GitLab Agent:
- Создайте инстанс Managed Service for GitLab или standalone-инстанс.
- Создайте файл конфигурации агента в репозитории:
- Откройте ваш инстанс GitLab и перейдите в ваш проект.
- В ветке
main
создайте новый каталог.gitlab/agents/<имя_агента_GitLab>
. - В каталоге
<имя_агента_GitLab>
создайте пустой файлconfig.yaml
.
- Зарегистрируйте агента в GitLab и получите токен доступа:
- Откройте ваш инстанс GitLab и перейдите в ваш проект.
- На панели слева выберите пункт Operate и в выпадающем меню выберите пункт Kubernetes clusters.
- Нажмите кнопку Connect a cluster и выберите имя агента
<имя_агента_GitLab>
. - Нажмите кнопку Register.
- GitLab создаст токен, который потребуется для установки приложения. Сохраните токен в безопасном месте.
Примечание
Подробнее о настройке и регистрации агента см. в документации GitLab
.
Установка с помощью Yandex Cloud Marketplace
- Перейдите на страницу каталога
и выберите сервис Managed Service for Kubernetes. - Нажмите на имя нужного кластера Managed Service for Kubernetes и выберите вкладку
Marketplace. - В разделе Доступные для установки приложения выберите GitLab Agent и нажмите кнопку Перейти к установке.
- Задайте настройки приложения:
- Пространство имен — выберите пространство имен или создайте новое.
- Название приложения — укажите название приложения, например
gitlab-agent
. - Имя домена GitLab — укажите имя вашего домена GitLab, например
gitlab-test.gitlab.yandexcloud.net
. - Токен доступа агента — скопируйте в это поле токен доступа GitLab, полученный ранее.
- Нажмите кнопку Установить.
- Дождитесь, пока статус приложения изменится на
Deployed
. - Откройте ваш инстанс GitLab и перейдите на страницу Infrastucture → Kubernetes clusters. Убедитесь, что агент перешел в состояние
Connected
.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm
версии не ниже 3.8.0. -
Установите kubectl
и настройте его на работу с созданным кластером. -
Для установки Helm-чарта
с GitLab Agent выполните команду:helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/gitlab-org/gitlab-agent/chart/gitlab-agent \ --version 1.16.0-1 \ --untar && \ helm upgrade --install \ --namespace <пространство_имен> \ --create-namespace \ --set config.kasAddress='wss://<имя_вашего_домена_GitLab>/-/kubernetes-agent/' \ --set config.token='<токен_доступа_GitLab>' \ gitlab-agent ./gitlab-agent/
Эта команда также создаст новое пространство имен, необходимое для работы приложения.
Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \
, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm. -
Убедитесь, что под GitLab Agent перешел в состояние
Running
:kubectl get pods --namespace gitlab-agent
-
Откройте ваш инстанс GitLab и перейдите на страницу Infrastucture → Kubernetes clusters. Убедитесь, что агент перешел в состояние
Connected
.