Continuous IntegrationDiensteDokumentationEntwicklungInfrastruktur

Installieren einer Gitlab Demo Umgebung auf Minikube

Vorraussetzungen

Minikube läuft auf unterschiedlichen Hypervisoren. Dieses Beispiel beschreibt die Installtion unter Virtualbox auf einem MacOS Host. Minikube unterstützt aber auch eine Menge anderer Hypersivor und Platformen.

Bevor wir starten können, müssen noch ein paar Abhängigkeiten installiert werden:

Neben minikube selbst, sind die die Kubernetes Tools (kubectl,helm) und der lokale DNS-Resolver dnsmasq, sowie das Request Forwarding Tool ngrok (mehr zu ngrok hier)

Setup der Umgebung

Nun können wir minikube anweisen, eine passende VM zu erstellen. Diese hat in diesem Beispiel 4 CPU Kerne, 16G RAM und 32G HDD:

Die Gitlab Dokumentation enthält eine detailierte Auflistung der benötigten Hardware Ressourcen

Das Repository https://gitlab.com/charts/charts.gitlab.io.git muss geklont werden.

Nun muss auf den Branch add-minikube-support gewechselt werden. Danach muss man alle notwendigen Abhängigkeiten per helm installieren.

Cluster Setup

Wir müssen nun die IP der Minikube VM ermitteln. Dies gelingt mit:

Wir passen nun zum ersten Mal die dnsmasq Konfiguration an:

Hier fügen wir folgenden Eintrag hinzu:

Dies bewirkt, dass alle subdomains unserer Demo Domain (*.demo.io) auf die lokale minekube IP 192.168.99.101weitergeleitet werden.

Wir müssen hierzu dnsmasq aber noch einmal neu starten:

Unter MacOS ist es ebenfalls wichtig, dass unter den Netzwerkeinstellungen, als erster DNS Server die lokale IP (127.0.0.1) eingetragen wird:

In einem anderen Terminal (oder einem anderen Tab) aktivieren wir nun den IP Forwarder ngrok für die Subdomain gitlab.demo.io:

Dies macht nun unser lokales System unter einer dynaischen externen URL (fe1a3260.ngrok.io) erreichbar.

Die Installation von Gitlab

Im Gitlab Chart Repository muss nun

ausgeführt werden.

Der Fortschritt der Installtion lässt sich mit

verfolgen:

DNS Auflösung reparieren. Hierzu muss der lokale DNS Server (hier 192.168.168.1) nachträglich hinzugefügt werden.

Überprüfen ob alle Pods auch laufen:

Wir können dies aber auch direkt auf dem Kubernetes Dashboard kontrollieren.

Ein

öffnet das Kubernetes Dashboard im Browser.

 

Hier sehen wir die laufenden Services unserer Gitlab Installation:

 

Abschluss der Installation

 

Wir müssen nun herausfinden unter welcher IP Adresse der Gitlab Service erreichbar ist.

Unter Kubernetes ist dies die IP Adresse des LoadBalancer NGinx (nginx-ingress):

 

Uns interessiert hier die ClusterIP 10.104.168.57

Jetzt muss in /usr/local/etc/dnsmasq.conf ein weiterer Eintrag hinzugefügt werden.

also in unserem Fall

Danach wird mit sudo brew services restart dnsmasq der dnsmasq Service neu gestartet.

Als letzten Schritt müssen wir die DNS Auflösung innerhalb der minikube VM beheben. Hierzu öffnen wir eine SSH Session

Und ergänzen die /etc/hosts Datei:

Wir verlassen die minikube VM wieder und können nun mit einem Browser die URL http://gitlab.demo.io öffnen.

Diese Anleitung basiert auf der Gitlab Dokumentation, während des Setup wurden aber noch ein paar Kleinigkeiten ergänzt.

Tags

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close