Я успешно соединил свой кластер Kubernetes с Gitlab. Также я смог установить Helm через пользовательский интерфейс Gitlab (Операции-> Кубернетес)
Моя проблема в том, что если я нажму кнопку «Установить» Ingress, Gitlab создаст все ненужные вещи, необходимые для Ingress-Controller. Но будет упущено одно: внешний IP. Внешний IP помечается как «?».
И если я выполню эту команду:
kubectl get svc --namespace=gitlab-managed-apps ingress-nginx-ingress- controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}'; echo
Это ничего не покажет. Как будто у меня не будет Loadbalancer, который выставляет внешний IP.
Кубернетский кластер
Я установил Kubernetes через kubeadm, используя фланель в качестве CNI
kubectl версия:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2"}
Есть ли что-то, что я должен настроить перед установкой Ingress. Нужен ли мне внешний Loadbalancer (моя мысль: Gitlab создаст этот сервис для меня)?
Еще один совет: после установки состояние службы Nginx-Ingress-Controller останется в состоянии ожидания. Причина в том, что он не может обнаружить внешний IP. Я также изменил yaml-файл службы и вручную поставил строку «externalIPs: -External-IP». В результате получилось, что он больше не ожидал. Но все же я не смог найти внешний IP, набрав выше команда и Gitlab также не смогли найти внешний IP
EDIT:
Это происходит после установки:
см. Рисунок
EDIT2:
Запустив следующую команду:
kubectl describe svc ingress-nginx-ingress-controller -n gitlab-managed-apps
Я получаю следующий результат:
см. Рисунок
В журнале событий вы увидите, что я переключаю тип на «NodePort» один раз, а затем снова на «LoadBalancer» и добавляю строку «externalIPs: -192.168.50.235» в файл yaml. Как вы можете видеть, есть внешний IP, но Git его не обнаруживает.
Btw. Я не использую ни одного из этих облачных провайдеров, таких как AWS или GCE, и я обнаружил, что LoadBalancer не работает таким образом. Но для этого должно быть решение без LoadBalancer.