GitLab предлагает интеграцию с Google Kubernetes Cluster и Amazon Elastic Kubernetes Services. Чтобы следовать этой статье, вам потребуется аккаунт Google Kubernetes Cluster и GitLab. Я уверен, что вы можете получить учетную запись GitLab, если у вас ее нет, и я рассказал вам о создании кластера GKE в этой статье: Развертывание WebApp с помощью Google Kubernetes Engine.
Итак, давайте начнем.
Шаг 1. Добавьте кластер GKE.
В GitLab перейдите на боковую панель › Операции › Kubernetes › Интеграция с сертификатом кластера
Выберите Подключить существующий кластер › Google GKE.
Шаг 2: Добавьте информацию о кластере
Имя кластера — это идентификатор GitLab, поэтому оно может отличаться от имени кластера GKE. Оставьте область среды с подстановочным знаком, если только вы не хотите указать ее, например, производственную или промежуточную.
Шаг 3. Добавьте URL-адрес API и сертификат
Вы можете выполнить это действие из облачного интерфейса командной строки, если у вас установлен Cloud SDK, или перейти в облачную оболочку GKE из своего проекта. Получите URL-адрес API, выполнив следующую команду:
kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'
Взамен вы получите базовый URL-адрес либо в виде имени домена: www.example.com, либо с IP-адресом. Добавьте этот URL-адрес API в свою консоль GitLab.
Шаг 4. Добавьте сертификат ЦС Kubernetes
Прежде всего, перечислите секреты с помощью команды и скопируйте токен, который выглядит как default-token-abcdef:
kubectl get secrets
Во-вторых, получите сертификат с помощью следующей команды:
kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
Скопируйте сертификат в консоль GitLab и выделите сертификат в командной строке, он автоматически скопирует содержимое для вас, пожалуйста, не выбирайте «Копировать», потому что это также может добавить разрыв строки.
Шаг 5: Добавьте сертификат ЦС Kubernetes
В терминале создайте файл с именем gitlab-admin-service-account.yaml
vi gitlab-admin-service-account.yaml
Скопируйте в файл следующее содержимое:
apiVersion: v1 kind: ServiceAccount metadata: name: gitlab namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gitlab-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: gitlab namespace: kube-system
Сохраните и выйдите из редактора vi с помощью следующей команды и нажмите Enter:
:wq
Примените учетную запись службы к вашему кластеру:
kubectl apply -f gitlab-admin-service-account.yaml
Вы должны увидеть содержимое терминала:
Получите токен:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab | awk '{print $1}')
Скопируйте значение токена в консоль GitLab:
Data ==== token: <authentication_token>
Добавьте префикс пространства имен проекта, если вы предпочитаете строковое имя, а не случайные числа. Нажмите синюю кнопку и работа сделана! ✅