OpenShift ist ein Tool von Red Hat, welches eine Art wrapper für Kubernetes darstellt: man kann auf wunderbar einfache Weise (jedenfalls als Entwickler) seine Anwendungen verwalten, skalieren und deployen.
Wie jede typische Unternehmensanwendung kostet es ein paar Euro. Zum Glück aber gibt es eine freie Alternative, bzw. eigentlich die Basis auch für Red Hat Entwicklung: das OKD oder Open Shift Origin.
Der Knackpunkt an OKD ist jedoch, dass es für Red Hat bzw. CentOS gedacht ist. Dumm nur, wenn meine Arbeitsmaschine mit Ubuntu ausgestattet ist. Klar, ich kann mir eine virtuelle Maschine einrichten, aber mit etwas Getrickse läßt sich OKD auch unter Ubuntu zum Laufen bekommen.
Die Installationsanleitung basiert auf Ubuntu 19.10. Wieso ich das so betone? Das sehen wir gleich…
Eine wichtige Voraussetzung für die Installation ist Docker Engine auf unserem Rechner (docker-ce)
Zuerst importieren wir den Docker GPG Key, falls noch nicht vorhanden:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Bei der Standardinstallation meiner Maschine war erstaunlicher curl gar nicht installiert. Bei Bedarf daher schnell nachinstallieren mit
sudo apt install curl
Dann brauchen wir noch ein paar Tools:
sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
sowie räumen auf, falls noch etwas an Leichen herumgeistert in unserem System:
sudo apt remove docker docker-engine docker.io containerd runc
Jetzt wird es lustig: wir brauchen das Docker APT Repository. Nur gibt es (Stand 14.01.2020) tatsächlich keine Release-Version des Repository für Ubuntu 19.10! Offenbar schaffen es die Entwickler von Ubuntu und die von Docker nicht, sich entsprechend abzustimmen!
Egal, das alte Repository des Vorgänger-Ubuntu geht auch:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu disco stable"
Falls es irgendwann gehen sollte, was ich nicht glaube, dann wäre der korrekte Befehl natürlich:
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
Aber derzeit müssen wir wirklich auf die disco-Version zurückgreifen.
Dann update und Installation:
sudo apt update && sudo apt -y install docker-ce
Kurz prüfen, ob die korrekte Version installiert wurde:
docker version
liefert bei mir die Ausgabe:
Version: 19.03.3
Mit dem üblichen Hello-World prüfen wir, ob die Installation funktioniert hat:
sudo docker run hello-world
Das fehlende Image wird vom Repository geladen und die Meldung “Hello from Docker!” sollte erscheinen.
Im zweiten Schritt kümmern wir uns jetzt um die Installation des OKD.
Zuerst legen wir ein Verzeichnis an und wechseln dorthin:
mkdir openshift && cd openshift
Dann holen wir via wget (oder downloaden direkt von der Homepage) die aktuelle Version:
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
entpacken diese
tar xvf openshift-origin-client-tools*.tar.gz
und wechseln dorthin:
cd openshift-origin-client*
Damit die Steuerungstools überall verfügbar sind, können wir die PATH-Variable erweitern (nicht schön) oder kopieren die entsprechenden Dateien nach /usr/local/bin:
sudo mv oc kubectl /usr/local/bin/
Nach erfolgreichem Kopieren sollte der Befehl
oc version
die installierte Version des OpenShift-Clusters zeigen.
Standardmässig erlaubt docker keine unsicheren Repositories, aber das brauchen wir hier, also fügen wir dieses hinzu:
cat << EOF | sudo tee /etc/docker/daemon.json
{
"insecure-registries" : [ "172.30.0.0/16" ]
}
EOF
und starten docker neu
sudo systemctl restart docker
Im nächsten Schritt starten wir unseren OpenShift:
sudo oc cluster up
Dieser Start dauert eine ganze Weile. Bei mir waren es gut fünf Minuten. Erst wenn diese Ausgabe erscheint, ist der Cluster oben:
OpenShift server started.
The server is accessible via web console at:
https://127.0.0.1:8443
You are logged in as:
User: developer
Password:
Danach können wir uns als Developer einloggen:
oc login
Die nachfolgende Anfrage nach dem Server beantwortet wir einem Return, da der Localhost sowie default ist. Die Frage nach “bypass the certificate check” ebenfalls mit Y.
Username ist developer, Password ebenfals developer
Und voila, wir sind eingeloggt.
Unter http://127.0.0.1:8443 finden wir die Webkonsole, wo die gleichen Zugangsdaten herrschen.