Allgemeines

Die Leocloud ist eine bare metal Kubernetes - Installation, die zur Verfügung steht, um Cloud - Anwendungen zu hosten. Die dort eingesetzten Anwendungen stehen in einer eigenen Subdomain von cloud.htl-leonding.ac.at zur Verfügung.

Um Anwendungen in der LeoCloud installieren zu können, müssen Sie ein gültiges Konto der HTL-Leonding haben. Es ist keine eigenene Registrierung notwendig, zur Anmeldung wird das normale Schulkonto verwendet.

Es werden folgende Commandline - Programme benötigt:

Die Commandline - Tools leocloud und kubectl müssen sich in einem Ordner befinden, der im Suchpfad des Betriebssystems liegt.

leocloud

Leocloud für Linux und OSX

um leocloud zu installieren führen Sie im Terminal folgendes aus:

bash -c "$(curl -fsSL https://cloud.htl-leonding.ac.at/html/install.sh)"

leocloud für Windows

Es gibt kein leocloud für Windows. Es wird auch keine leocloud.exe angeboten, weder zum Herunterladen noch im Archiv der Clients. LeoCloud wird für Linux und macOS ausgeliefert.

Unter Windows arbeiten Sie mit dem Windows-Subsystem für Linux (WSL): Sie installieren dort Ubuntu und darin die Linux-Version von leocloud. Das ist der einzige unterstützte Weg.

  1. Installieren Sie Ubuntu für Windows.

  2. Aktualisieren Sie Ubuntu für Windows mit:

    sudo apt update && sudo apt full-upgrade
    # restart Ubuntu mit wsl --shutdown (Powershell)
    sudo do-release-upgrade
  3. installieren Sie leocloud wie in Leocloud für Linux und OSX beschrieben.

Sollte sich beim Verwenden von leocloud das Browser - Login Fenster nicht automatisch öffnen (z.b. unter Windows mit WSL2) verwenden Sie bei den leocloud Befehlen den zusätzlichen Parameter --display-login-url und öffnen Sie die angezeige URL in einem Browser.

kubectl

kubectl muss laut den Anweisungen unter Install Tools installiert sein. Die korrekte Installation muss durch folgende Eingabe im Terminal überprüft werden:

kubectl

Es sollten jetzt die verfügbaren kubectl Kommandos aufgelistet werden.

kubectl config Datei erstellen

Damit kubectl funktioniert brauchen wir eine gültige Konfigurationsdatei. Diese wird als ~/.kube/config gespeichert.

Eine bereits vorhandene Datei müssen Sie nicht umbenennen oder löschen. Ihre LeoCloud - Einträge werden in die vorhandene Datei eingefügt; alle anderen Cluster, Benutzer und Kontexte, die Sie schon hatten, bleiben unverändert erhalten.

Nach einem erfolgreichen Login ist der Kontext leocloud der aktuelle Kontext. kubectl arbeitet danach ohne weitere Angaben in Ihrem eigenen Namespace.

Für das Zusammenführen wird kubectl selbst verwendet, es muss also installiert sein (siehe kubectl). Fehlt kubectl, bricht der Befehl mit einer entsprechenden Meldung ab und ändert nichts an Ihrer Konfigurationsdatei.

Die Datei enthält ein Zugangs - Token und wird deshalb so angelegt, dass nur Ihr eigenes Benutzerkonto sie lesen kann.

Die Konfigurationsdatei wird erstellt mit:

leocloud auth login

Danach überprüfen wir, ob alles funktioniert:

kubectl get nodes
kubectl config view

In der Ausgabe des letzten Kommandos sehen Sie den Namen Ihres Namespaces. Ab jetzt können sie in ihrem eigenen Namespace with gewohnt mit kubectl arbeiten. Der einzige Unterschied zu minikube ist, dass ihr Namespace - Name nicht "default" ist.

die Sitzung auf diesem Rechner beenden

leocloud auth logout

Damit werden die gespeicherten Zugangsdaten von diesem Rechner entfernt, und aus ~/.kube/config werden genau jene Einträge entfernt, die der Login angelegt hat. Alle anderen Einträge in dieser Datei bleiben bestehen.

Important
Sie sind damit noch nicht im Browser abgemeldet. Solange die Single - Sign - On - Sitzung im Browser besteht, meldet Sie ein neuer Login sofort wieder als dieselbe Person an, ohne nach dem Passwort zu fragen. Der Befehl zeigt Ihnen dafür die Adresse an, unter der Sie die Browser - Sitzung beenden. Erst danach können Sie sich als jemand anderer anmelden.

die eigene Homepage erstellen und aufrufen

leocloud get template nginx | kubectl apply -f -

Dies startet das Deployment. Anschließend beobachten Sie den Vorgang mit

kubectl get pods

bis alle Pods "RUNNING" sind.

den eigenen Hostnamen anzeigen

kubectl describe ingress

die eigene Homepage öffnen

Die Homepage öffnet sich mit:

leocloud get home

Dies zeigt Ihnen im Browser die Informationen an, die sie zum Erstellen Ihrer Deployments und Services benötigen.

Dashboard

Das Dashboard wird gestartet mit:

leocloud dashboard

folgen Sie dann den Anleitungen dort.

Happy Leoclouding!

Docker registry

Als Docker Registry können Sie ghcr.io verwenden.

Problembehandlung

Sollten Sie Probleme mit Ihrer Anwendung haben, denken Sie daran: es gibt nur zwei schwierige Dinge beim Entwickeln von Software. Löschen Sie Ihren Namespace mit kubectl delete namespace MYNAMESPACE wobei sie MYNAMESPACE durch den Namen Ihres Namespaces ersetzen. Den Namespace finden Sie mit kubectl config view oder wie oben beschrieben mit leocloud get home.

Achtung: damit löschen Sie auch alle Daten in Ihren persistenten Volumes — sofort und unwiderruflich. Das Löschen des Namespaces ist kein Neustart, sondern entfernt den gesamten Inhalt. Es gibt keine Frist, innerhalb derer sich etwas zurückholen ließe. Holen Sie vorher heraus, was Sie behalten wollen — siehe Lebensdauer Ihres Bereichs. Danach neu einloggen; Sie bekommen einen leeren Bereich.

Lebensdauer Ihres Bereichs

Ihr Namespace bleibt nicht dauerhaft bestehen. Er wird entfernt, wenn Ihr Jahrgang die fünfjährige Ausbildung abgeschlossen hat: Wer im Jahr Y eingetreten ist, verliert seinen Bereich beim Aufräumen nach dem Jahr Y + 5. Solange Sie an der Schule sind, bleibt Ihr Bereich bestehen, auch über die Ferien.

Bereiche ohne Matrikelnummer — Lehrende, Seminarteilnehmerinnen und Seminarteilnehmer — sind von dieser Regel nicht erfasst und werden einzeln entschieden.

Für Prüfungszugänge gilt etwas anderes — siehe Prüfungszugänge.

Vor dem Löschen
  • Sie werden vorher per E-Mail verständigt, mindestens 7 Tage davor. Die Nachricht nennt den Tag, an dem gelöscht wird.

  • Verständigt wird an die Adresse, die bei Ihrer Anmeldung aus dem Schulkonto übernommen wurde. Es wird keine Adresse aus dem Namen Ihres Namespaces gebildet.

  • Früher als angekündigt wird nicht gelöscht. Später kann es werden.

Was gelöscht wird
  • der gesamte Namespace: alle Deployments, Services und Ingresses,

  • alle Daten in den persistenten Volumes,

  • Ihr Zugang. Eine noch vorhandene ~/.kube/config funktioniert danach nicht mehr.

Beim Löschen sind die Daten sofort weg

Die Daten in den persistenten Volumes werden in dem Moment vernichtet, in dem der Bereich gelöscht wird. Es gibt keine Aufbewahrungsfrist — weder 30 Tage noch eine kürzere. Danach liegt am Fileserver nichts mehr, was noch herausgegeben werden könnte, und niemand kann die Daten zurückholen, auch die Administration nicht.

Dasselbe gilt, wenn Sie selbst löschen: kubectl delete pvc und kubectl delete namespace vernichten die Daten sofort und endgültig.

Sichern Sie deshalb selbst, was Sie behalten wollen, solange Ihr Bereich noch besteht. Der folgende Befehl ist die einzige Rettung, die es gibt. Aus einem laufenden Pod geht das zum Beispiel so:

kubectl cp MYNAMESPACE/MYPOD:/pfad/im/pod ./ziel-am-eigenen-rechner

Prüfungszugänge

Für praktische Prüfungen gibt die Schule eigene Zugänge aus. Ihr Benutzername beginnt mit test, danach folgen zwei Buchstaben für den Prüfungssatz und die Katalognummer — zum Beispiel testee01. Für diese Zugänge gilt die Regel im vorigen Abschnitt nicht.

Ein Prüfungsbereich wird 24 Stunden nach seiner Erstellung gelöscht. Der Zeitpunkt wird beim Anlegen am Namespace vermerkt und kann abgelesen werden:

kubectl get namespace MYNAMESPACE -o jsonpath='{.metadata.annotations.cloud\.htl-leonding\.ac\.at/delete-after}'
Während der Prüfung

Wer sich ein zweites Mal anmeldet — weil die Konfigurationsdatei verloren gegangen ist oder ein anderer Rechner verwendet wird — bekommt denselben Bereich zurück, mit allem, was darin schon läuft. Es wird dabei nichts gelöscht und nichts neu angelegt. Die 24 Stunden verlängern sich dadurch aber auch nicht: sie laufen ab dem ersten Anlegen.

Kommt die Anmeldung genau in dem Moment, in dem der Bereich gerade entfernt wird, wird sie abgelehnt mit der Aufforderung, den Befehl in ein paar Sekunden noch einmal auszuführen. Der nächste Versuch legt dann einen neuen, leeren Bereich an.

Was für Prüfungsbereiche anders ist
  • Es wird nicht vorher verständigt. Ein Prüfungszugang hat keine E-Mail-Adresse, und es wird auch keine gebildet.

Holen Sie also heraus, was Sie behalten wollen, bevor die 24 Stunden um sind.

Anmerkungen

Für das Arbeiten mit der LeoCloud sind Grundkenntnisse im Cloud-Computing und Kubernetes erforderlich. Es ist nicht erwünscht die LeoCloud zur Software - Entwicklung zu verwenden. Zum Erstellen und Debuggen einer Anwendung muss zuerst minikube verwendet werden. LeoCloud ist 1:1 kompatibel mit minikube. Erst wenn die Anwendung problemlos auf minikube funktioniert kann sie auf der LeoCloud eingespielt werden. Wenn Sie Fragen zur LeoCloud haben ist es zwingend erforderlich, dass vorher die Anwendung, um die es geht, auf minikube problemlos läuft und diese erfolgreich vorgeführt werden kann. Erst danach können angebliche Probleme mit der LeoCloud behandelt werden.

Download as Pdf

Diese Dokument steht auch als user-manual.pdf zur Verfügung.