Aktivieren des Kubeapps App Launcher auf einem CODE-DE Magnum Kubernetes Cluster

Der Kubeapps App-Launcher ermöglicht die schnelle Bereitstellung von Anwendungen auf Ihrem Kubernetes-Cluster mit einer praktischen grafischen Benutzeroberfläche. In diesem Artikel finden Sie Richtlinien für die Erstellung von Kubernetes-Clustern mit aktivierter Kubeapps-Funktion und einige Beispielanwendungen.

Was wir behandeln werden

  • Hintergrund zur Einrichtung von Anwendungen auf Kubernetes

  • Erstellen eines Clusters mit aktiviertem Kubeapps-Schnellstarter

  • Lokaler Zugriff auf den Kubeapps-Dienst über den Browser

  • Starten von Beispielanwendung über Kubeapps

  • Aktuelle Einschränkungen

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein CODE-DE Konto mit Horizon-Schnittstelle https://cloud.fra1-1.cloudferro.com/auth/login/?next=/.

Die von Ihnen benötigten und genutzten Ressourcen müssen auf Ihrem Konto verfügbar sein. Überprüfen Sie Ihre Kontostatistiken unter https://administration.code-de.org/login.

Nr. 2 Kubernetes-Cluster über Horizon GUI erstellen

Kenntnisse über die Erstellung eines Kubernetes-Clusters über die Horizon-GUI, wie in diesem Artikel beschrieben Erstellen eines Kubernetes-Clusters mit CODE-DE OpenStack Magnum

Nr. 3 Zugriff auf Kubernetes-Cluster nach der Bereitstellung

Kentnisse über den Zugang zur Linux-Befehlszeile und die Fähigkeit, auf den Cluster zuzugreifen, wie im Artikel beschrieben Zugriff auf Kubernetes-Cluster nach der Bereitstellung mit Kubectl auf CODE-DE OpenStack Magnum

Nr. 4 Umgang mit Helm

Eine gewisse Vertrautheit mit Helm, um die Bereitstellung von Anwendungen mit Kubeapps anzupassen, wird vorausgesetzt. Siehe auch Einsatz von Helm Charts auf Magnum Kubernetes-Clustern auf der CODE-DE FRA1-1 Cloud.

Nr. 5 Zugang zu CloudFerro-Clouds

Kubeapps ist in der Cloud FRA1-1 verfügbar.

Hintergrund

Die Bereitstellung komplexer Anwendungen auf Kubernetes wird mit Helm deutlich effizienter und bequemer. Zusätzlich zu diesem Komfort bietet Kubeapps, ein App-Starter mit grafischer Benutzeroberfläche (GUI), einen benutzerfreundlichen Ausgangspunkt für das Anwendungsmanagement. Mit dieser grafischen Benutzeroberfläche können Sie Anwendungen auf Ihrem K8s-Cluster bereitstellen und verwalten, ohne dass Sie über umfassende Kenntnisse der Kommandostruktur verfügen müssen.

Der Kubeapps App-Launcher kann während der Clustererstellung aktiviert werden. Er wird als lokaler Dienst ausgeführt, der über den Browser zugänglich ist.

Kubernetes-Cluster mit aktiviertem Kubeapps-Schnellstarter erstellen

Die Erstellung eines Kubernetes-Clusters mit aktivierten Kubeapps folgt der in Voraussetzung Nr. 2 beschriebenen allgemeinen Richtlinie.

Bei der Erstellung des Clusters in Horizon gemäß dieser Richtlinie:

  • fügen Sie auf der Registerkarte “ Advanced “ drei Beschriftungen mit den folgenden Werten ein und

  • wählen Sie, ob Sie die Beschriftungen außer Kraft setzen wollen.

kubeapps_enabled=true,helm_client_tag=v3.11.3,helm_client_sha256=ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89

Wichtig

Zwischen den Labels dürfen keine Leerzeichen sein.

Das Einfügen dieser Beschriftungen wird in der folgenden Abbildung gezeigt:

../_images/image-2024-2-13_13-15-17.png

Lokaler Zugang zum Kubeapps-Dienst über Ihren Browser

Sobald der Cluster erstellt ist, greifen Sie auf die Linux-Konsole zu. Sie sollten über das Befehlszeilenwerkzeug kubectl verfügen, wie in Voraussetzung Nr. 3 angegeben.

Der Kubeapps-Dienst ist für das Service-Konto kubeapps-operator aktiviert. Wir benötigen ein Token, das dieses Dienstkonto beim Cluster authentifiziert.

Um das Token auszugeben, führen Sie den folgenden Befehl aus:

kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{.secrets[].name}') -o go-template='{{.data.token | base64decode}}' && echo

Als Ergebnis wird ein langes Token gedruckt, ähnlich dem folgenden:

../_images/image-2024-2-13_14-44-49.png

Kopieren Sie das Token. Führen Sie dann den folgenden Befehl aus, um den Datenverkehr zwischen Ihrem lokalen Rechner und dem Kubeapps-Dienst zu tunneln:

kubectl port-forward -n kube-system svc/magnum-apps-kubeapps 8080:80

Geben Sie localhost:8080 in Ihren Browser ein, um auf Kubeapps zuzugreifen, fügen Sie das zuvor kopierte Token ein und klicken Sie auf Submit:

../_images/image-2024-2-13_15-39-52.png

Sie können jetzt Kubeapps bedienen:

../_images/image-2024-2-13_15-48-38.png

Beispielanwendung aus Kubeapps starten

Wenn Sie auf „Catalog“ klicken, sehen Sie eine lange Liste von Anwendungen, die Sie aus dem Kubeapps App-Store herunterladen können.

../_images/image-2024-2-13_16-8-43.png

Als Beispiel werden wir den Apache-Webserver installieren und dazu auf das Feld „Apache“ klicken. Beachten Sie, dass die Kubeapps-Schnittstelle die grafische Verknüpfung ist, die im Hintergrund das Helm-Diagramm auf dem Cluster installiert.

Sobald Sie sich mit den Voraussetzungen und zusätzlichen Informationen über dieses Diagramm vertraut gemacht haben, klicken Sie auf Deploy in der oberen rechten Ecke:

../_images/image-2024-2-13_15-58-45.png

Der nächste Bildschirm mit der standardmäßig aktivierten Registerkarte „Visual Editor“ ermöglicht die Festlegung einiger wichtiger Anpassungen für den Einsatz des Dienstes, z. B. die Angabe des Diensttyps oder der Anzahl der Replikate. Der Zugriff auf detailliertere Konfigurationen (die die Konfigurationsdatei values.yaml von Helm Chart widerspiegeln) ist auch über die GUI-Registerkarte „YAML-Editor“ möglich.

Um dem Artikel zu folgen, ändern Sie die Standardeinstellungen nicht, sondern geben Sie nur den Name of deployment (in unserem Fall apache-test) ein und klicken Sie auf Deploy mit der verfügbaren Version:

../_images/image-2024-2-13_16-13-21.png

Da wir einen Dienst des Typs LoadBalancer bereitgestellt haben, müssen wir ein paar Minuten warten, bis er in der Cloud verfügbar ist. Danach können wir auf dem Bildschirm sehen, dass die Bereitstellung abgeschlossen ist:

../_images/image-2024-2-13_16-31-37.png

Außerdem können wir in der Konsole überprüfen, ob der Apache-Dienst zusammen mit dem Deployment und dem Pod ordnungsgemäß implementiert wurde. Führen Sie die folgenden Befehle aus:

kubectl get deployments
kubectl get pods
kubectl get services

Die Ergebnisse werden in etwa so aussehen:

../_images/image-2024-2-13_16-29-35.png

Aktuelle Einschränkungen

Sowohl Kubeapps als auch Helm-Charts, die von diesem Launcher bereitgestellt werden, sind Open-Source-Projekte, die kontinuierlich weiterentwickelt werden. Die auf der CODE-DE Cloud installierten Versionen zeigen den momentanen Stand der Entwicklung als eine Zusatzfunktion.

Es ist davon auszugehen, dass nicht alle Anwendungen mit einem Klick installiert werden können und in Einzelfällen eine zusätzliche Konfiguration erforderlich ist.

Eine bekannte Einschränkung ist, dass bestimmte Diagramme RWM (ReadWriteMany) persistente Volume-Ansprüche benötigen, um richtig zu funktionieren. Derzeit sind RWM-Persistent-Volumes nicht nativ auf der CODE-DE Cloud verfügbar. Ein Workaround könnte die Installation eines NFS-Servers und die Bereitstellung einer StorageClass mit RWM-unterstützendem Provisioner sein, z. B. unter Verwendung des Projekts nfs-subdir-external-provisioner auf GitHub.

Für NFS auf einem Kubernetes-Cluster, siehe Erstellen und Zugreifen auf NFS-Server von Kubernetes aus auf CODE-DE.