Mit Helmfile deployen
Ziele
Das Hauptziel dieses Tutorials ist es zu zeigen, wie Anwendungen auf unserer OpenShift PaaS mithilfe von Helmfile in der Orchestrierung mehrerer Helm-Charts bereitgestellt werden können.
Den Front-End-Dienst über HTTP/HTTPS freigeben.
Bekannte Einschränkungen
Der Kontext dieser Demonstration ist wie folgt:
- Einhaltung der OpenShift-Beschränkungen (SCC restricted-V2).
- Bereitstellung ausschließlich von nicht privilegierten Containern (UID > 30000).
- Keine Verwendung von benutzerdefinierten CRDs.
- Kein Zugriff auf die Plattformrolle als cluster-admin.
- Keine bereichsweite Bereitstellung auf Clusterebene (clusterweite Installation).
- Keine Namespace-Erstellung über Helmfile (um Berechtigungskonflikte zu vermeiden).
Highlights
- Demonstration der Bereitstellung eines Front-Ends (Nginx) und eines Back-Ends (PostgreSQL) mithilfe von Helmfile.
Softwareversionen
- OpenShift CLI : 4.17.6
- Helm : v3.16.3
- Helmfile : v0.169.2
- OpenShift : v4.15
- PostgreSQL : v17.2.0-debian-12-r5
- Nginx : v1.27.3
Voraussetzungen
Vor Beginn dieser Demonstration stellen Sie sicher, dass Sie die folgenden Werkzeuge und Ressourcen haben:
-
CLI-Tools
- OpenShift CLI (
oc) : Dokumentation - Helm : Dokumentation
- Helmfile : Dokumentation
- OpenShift CLI (
-
OpenShift-Umgebung
- Ein funktionsfähiges OpenShift-Cluster, das von Cloud Temple verwaltet wird.
-
Zugriff und Berechtigungen
- Kundenadmin-Rolle zur Erstellung von Projekten und Bereitstellung von Ressourcen.
Demonstrationsplan
Überblick über die Schritte
- Vorbereitung der Umgebung und Tools.
- Bereitstellung von Anwendungen mit Helmfile:
- nginx: Ein einfacher Webserver.
- PostgreSQL: Ein Datenbankserver.
- Überprüfung der Bereitstellung:
- Bestätigen, dass die rootlosen Konfigurationen angewendet werden.
- Testen der Funktionalität der Anwendungen.
- Erkundung von fortgeschrittenen Anwendungsfällen und Erweiterungen.
Notwendige Dateien
Um zu beginnen, benötigen Sie unser Demonstrationsrepository
- Holen Sie es sich hier im Verzeichnis
/examples/deploy-through-helmfile/.
Dort finden Sie drei Dateien:
Helmfile.yaml: Bereitstellungsmanifest, das Helmfile ermöglicht, die Bereitstellung der Helm-Charts zu definieren und zu orchestrieren.nginx-values.yaml: Gibt die Konfiguration und das Verhalten von Nginx an.postgres-values.yaml: Gibt die Konfiguration und das Verhalten von PostgreSQL an.
Helmfile.yaml
Die Hauptkonfigurationsdatei von Helmfile.
Es definiert die Repositories, Helm-Charts und benutzerdefinierten Werte für jede Anwendung.
Analyse Zeile für Zeile
helmDefaults
helmDefaults:
createNamespace: false
- Beschreibung: Legt das Standardverhalten der über Helmfile ausgeführten Helm-Befehle fest.
- Detail:
createNamespace: false: Verhindert, dass Helm während der Bereitstellung versucht, Namespaces zu erstellen.
- Auswirkung:
- Stellt sicher, dass der Namespace vor der Bereitstellung der Charts existieren muss.
- Reduziert Fehler in Umgebungen mit eingeschränkten Berechtigungen.
repositories
repositories:
- name: bitnami
url: https://charts.bitnami.com/bitnami
- Beschreibung: Definiert die Helm-Repositories, die die benötigten Charts enthalten.
- Detail:
name: Alias des Helm-Repositories.url: URL des Bitnami-Repositories, das häufig verwendete Charts enthält, die mit OpenShift kompatibel sind.
releases
- name: nginx
namespace: poc-helmfile
chart: bitnami/nginx
values:
- nginx-values.yaml
- Beschreibung: Definiert eine Helm-Anwendung namens nginx.
- Detail:
name: Name des Helm-Releases.namespace: Kubernetes-Namespace, in dem diese Anwendung bereitgestellt wird.chart: Verwendetes Helm-Chart, hierbitnami/nginx, das vom Bitnami-Repository abgerufen wurde.values: YAML-Datei, die spezifische Konfigurationen für die Bereitstellung enthält, hiernginx-values.yaml.
nginx-values.yaml
Konfigurationsdatei für die Bereitstellung von Nginx.
postgres-values.yaml
Gibt die Konfiguration für die Bereitstellung von PostgreSQL an.
Bereitstellungsablauf
1. Installieren der Voraussetzungen
Stellen Sie sicher, dass alle in der Software-Sektion erwähnten Tools installiert sind.
Befolgen Sie gegebenenfalls die folgenden Anleitungen:
2. Anmeldung am OpenShift-Cluster
Melden Sie sich mit folgendem Befehl bei Ihrem OpenShift-Cluster an:
oc login --server=https://api.openshift.example.com:6443 --web
Achtung: Ändern Sie
--server=urlin die URL Ihrer Cloud Temple PaaS-Instanz.
3. Erstellen eines dedizierten Namespace
Dieser Namespace isoliert die Demonstrationsressourcen:
oc new-project poc-helmfile
4. Bereitstellen der Anwendungen mit Helmfile
Verwenden Sie den folgenden Befehl:
helmfile sync
5. Überprüfung der Bereitstellung
- Pods überprüfen:
oc get pods -n poc-helmfile
6. Testen der Dienste
Stellen Sie die bereitgestellten Dienste bereit, um deren Erreichbarkeit und Funktionalität zu testen.
1. Routen erstellen
Stellen Sie den Nginx-Dienst bereit, indem Sie HTTP- oder HTTPS-Routen konfigurieren:
- Für HTTPS:
oc create route edge nginx-tls --service=nginx -n poc-helmfile --port=8080
- Für HTTP:
oc create route edge nginx --service=nginx -n poc-helmfile --port=8080
2. Ein Label für die öffentliche Bereitstellung hinzufügen
Fügen Sie dem Router ein spezifisches Label hinzu, damit Ihr Dienst öffentlich zugänglich ist:
- Für die HTTPS-Route:
oc label route nginx-tls ct-router-type=public -n poc-helmfile
- Für die HTTP-Route:
oc label route nginx ct-router-type=public -n poc-helmfile
Diese Schritte gewährleisten, dass Ihre Routen korrekt bereitgestellt werden.
7. Überprüfen der Routen und Zugreifen auf die Anwendungen
1. Liste der verfügbaren Routen
Überprüfen Sie, ob die Routen korrekt erstellt wurden:
oc get routes -n poc-helmfile
Beispielausgabe:
| Name | Host/Port | Service | Port | TLS-Terminierung | Label |
|---|---|---|---|---|---|
| nginx | nginx-poc-helmfile.apps-ocpnumber-cluster.paas.cloud-temple.com | nginx | 8080 | Keine | ct-router-type=public |
| nginx-tls | nginx-tls-poc-helmfile.apps-ocpnumber-cluster.paas.cloud-temple.com | nginx | 8080 | Edge (TLS) | ct-router-type=public |
2. Zugriff auf die Anwendungen
Verwenden Sie die in der Spalte „Host/Port“ aufgeführten URLs, um auf die Anwendungen zuzugreifen. Hier ist ein Beispiel:
- Für HTTP:
http://nginx-poc-helmfile.apps-ocp{number}-{cluster}.paas.cloud-temple.com - Für HTTPS:
https://nginx-tls-poc-helmfile.apps-ocp{number}-{cluster}.paas.cloud-temple.com
Sie sollten eine Webserver-Antwort vom Nginx-Front-End sehen, das bereitgestellt wurde.
Validierungskriterien
Um den Erfolg dieser Demonstration sicherzustellen, überprüfen Sie die folgenden Punkte:
- Beide Anwendungen laufen fehlerfrei.
- Die Pods verwenden UID > 30000, gemäß den rootlosen Containerbeschränkungen.
- Keine benutzerdefinierten CRDs wurden bereitgestellt.
- Die bereitgestellten Dienste sind über ihre definierten Routen zugänglich (prüfen Sie Nginx über HTTP und HTTPS).
Fazit
Sie haben nun ein vollständiges Beispiel für die Bereitstellung von Front-End- und Back-End-Anwendungen auf OpenShift mit Helmfile. Diese Methode bietet eine modulare und robuste Verwaltung komplexer Umgebungen.
Sie beherrschen jetzt die Bereitstellung über Helmfile auf OpenShift in einer von Cloud Temple verwalteten Umgebung. 🚀