Цель

Заметки ИТ которые я не хочу потерять

menu_navigation

Gitlab Integration with Kubernetes

В Gitlab есть возможность подключения кластера kubernetes с группе проекта, начиная с версии premium - несколько кластеров к одной группе.

В меню группы выберите вкладку "Kubernetes" и нажмите "Add existing cluster".
введите имя кластера (например его IP или hostname)
введите "API URL" обычно имеет вид https://x.x.x.x:6443 или https://x.x.x.x:443
Заполните "CA certificate" - сертификат созданный по-умолчанию, его можно посмотреть на любой ноде
для этого в терминале ноды кластера введите команду:

kubectl get secrets
NAME                  TYPE                                  DATA   AGE
default-token-2qr7s   kubernetes.io/service-account-token   3      3d7h

она показывает имеющиеся секреты
получите сертификат используя имя секрета и скопируйте его полностью в гитлаб

kubectl get secret default-token-2qr7s -o jsonpath="{['data']['ca\.crt']}" | base64 --decode

-----BEGIN CERTIFICATE-----
MIIC+TCCAeGgAwIBAgIJAPo6nlw1y3FuMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV
..............................................................
LMm1Z1GeawSWHU/+JC7RDQDCH1JGUbHOMj7huxidHZ3+WY9LAm+qe8LhVu0O
-----END CERTIFICATE-----

Service Token - это служебный токен доступа, для учетной записи пользователя с административными правами
создайте файл с именем gitlab-admin-service-account.yaml

vi gitlab-admin-service-account.yaml

скопируйте в него следующее содержимое:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: gitlab-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: gitlab-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: gitlab-admin
  namespace: kube-system

примените этот yaml файл

kubectl apply -f gitlab-admin-service-account.yaml

запросите токен для учетной записи gitlab-admin и скопируйте его полностью в гитлаб

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')

чекбоксы оставьте по-умолчанию
нажмите "Add Kubernetes cluster"
Значок статуса интеграции должен изменится на "включено", если нет будет выведена ошибка, проверьте еще раз сертификат и токен
введите Base domain - это IP ноды кластера с wildcard доменом nip.io - x.x.x.x.nip.io
В разделе Applications установите Helm Tiller и Ingress

Комментариев нет:

Отправить комментарий