Mit Terraform-Kubernetes-Apps im Google Cloud Marketplace können Ihre Kunden Terraform verwenden, um Ihre containerisierten Apps in Google Kubernetes Engine bereitzustellen. Ihre Nutzer werden nicht für die Nutzung Ihrer Terraform-Kubernetes-Apps belastet, aber für die Nutzung von Google Cloud -Ressourcen. Sie können Terraform-Kubernetes-Apps öffentlich für alle Cloud Marketplace-Nutzer oder privat über Private Offers anbieten.
Für Terraform-Kubernetes-Apps, die Sie über Cloud Marketplace anbieten, werden die Konfigurationen mit Helm-Diagrammen definiert, die Sie in Artifact Registry hosten. Danach können Sie Ihre App über das Producer Portal in Cloud Marketplace einbinden.
Übersicht über das Onboarding einer Terraform-Kubernetes-Anwendung
Das Anbieten einer Terraform-Kubernetes-App über Cloud Marketplace umfasst die folgenden Schritte:
Terraform-Kubernetes-Anwendung für Cloud Marketplace vorbereiten Dazu gehört das Einrichten von Artifact Registry und das Übertragen der Images Ihrer App per Push an Artifact Registry.
Fügen Sie Preisinformationen für Ihre App im Producer Portal hinzu.
Bereitstellung Ihrer App konfigurieren: Konfigurieren Sie im Producer Portal das Terraform-Modul, das Helm-Diagramm und die Container-Images Ihrer App.
Veröffentlichen Sie Ihr Produkt im Cloud Marketplace. Während Sie Ihr Produkt einrichten, reichen Sie verschiedene Teile des Produkts zur Überprüfung ein. Das Cloud Marketplace-Team prüft jede Einreichung und arbeitet mit Ihnen zusammen, um alle Probleme zu lösen, bevor die Einreichung genehmigt wird. Wenn alle Einreichungen genehmigt wurden, können Sie das Produkt innerhalb weniger Minuten veröffentlichen und starten.
Anforderungen für Terraform-Kubernetes-Anwendungen
Alle Produkte, die Sie über Cloud Marketplace anbieten, müssen den Anforderungen für Einträge im Cloud Marketplace entsprechen.
Ihre Terraform-Kubernetes-App muss die folgenden zusätzlichen Anforderungen erfüllen:
- Ihre Anwendung muss auf GKE-Knoten mit x86-Prozessoren ausgeführt werden.
- Alle Helm-Charts und Container-Images Ihrer App müssen in Ihre Artifact Registry-Registry hochgeladen werden, in dasselbe Repository und Projekt, das Sie für Ihre Terraform Kubernetes-App verwenden.
- Ihre Artifact Registry-Registrierung muss ein Helm-Diagramm enthalten.
- Das Terraform-Modul muss als ZIP-Datei in einem Cloud Storage-Bucket gehostet werden, der sich im selben Projekt befindet, das Sie für Ihre Terraform Kubernetes-App verwenden.
- Sie müssen die Versionsverwaltung für den Cloud Storage-Bucket aktivieren, den Sie zum Hosten Ihres Terraform-Moduls verwenden.
- Sie müssen ein Nutzerhandbuch mit Schritten zum Bereitstellen Ihrer App über die Befehlszeile, zum Konfigurieren der App und zum Verwenden der App hinzufügen. Weitere Informationen finden Sie in diesem Dokument unter Anforderungen an Ihr Nutzerhandbuch.
- Es werden nur Betaressourcen oder allgemein verfügbare Kubernetes-Ressourcen verwendet, um Nutzer vor instabilen APIs zu schützen.
Anforderungen an Ihre App-Bilder
Ihre App-Bilder müssen die folgenden Anforderungen erfüllen:
- Alle Images Ihrer App müssen mit dem Release-Track und der aktuellen Version versehen sein. Wenn Sie beispielsweise die Version
2.0.5
auf dem Release-Track2.0
veröffentlichen, müssen alle entsprechenden Images mit2.0
und2.0.5
gekennzeichnet sein. Weitere Informationen finden Sie unter Releases verwalten. Alle Images Ihrer App müssen die folgende Annotation in ihrem Image-Manifest enthalten:
com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
Ersetzen Sie SERVICE_NAME durch den Namen Ihres Dienstes. Den Namen Ihres Dienstes finden Sie in der Produkttabelle auf der Seite Übersicht im Producer Portal. Weitere Informationen zu Anmerkungen finden Sie in der Dokumentation der Open Container Initiative zu Anmerkungen auf GitHub.
Anforderungen an Ihr Artifact Registry-Repository
Das Helm-Diagramm und die Container-Images Ihrer App müssen Teil eines einzelnen Artifact Registry-Repositorys sein.
Wenn Ihr Artifact Registry-Repository beispielsweise us-docker.pkg.dev/exampleproject
ist, sollten das Helm-Diagramm und die Container-Images Ihrer App so aussehen:
us-docker.pkg.dev/exampleproject/exampleapp/chart
us-docker.pkg.dev/exampleproject/exampleapp/image1
us-docker.pkg.dev/exampleproject/exampleapp/image2
Anforderungen an das Terraform-Modul
Kunden verwenden das Terraform-Modul, um Ihr Produkt über Infrastructure Manager aus Cloud Marketplace bereitzustellen. Das Terraform-Modul enthält die Kubernetes-Konfiguration Ihrer Anwendung.
Verwenden Sie das Beispielmodul als Ausgangspunkt und folgen Sie der Partneranleitung, um ein Terraform-Modul zu erstellen, das mit Ihrer App kompatibel ist.
An Ihre Anwendung übergebene Parameter
Ihr Terraform-Modul muss Parameter deklarieren, die von Kunden bei der Auswahl Ihrer Anwendung erfasst werden müssen. Diese Parameter werden dann an den Helm-Diagramm-Container übergeben, wenn Nutzer die Anwendung bereitstellen.
Damit diese Parameter konfiguriert werden können, muss Ihr Terraform-Modul eine schema.yaml
-Datei enthalten.
Informationen zum Erstellen eines schema.yaml
finden Sie in der Anleitung zum Erstellen eines Schemas auf GitHub.
GPU-Clusteranfragen
Wenn Ihre Anwendung bestimmte GPU-Anforderungen hat oder GPU-intensiv ist, können Sie den Typ und die Anzahl der GPUs im Cluster mit Ihrem Deployer-Schema angeben. Wenn Sie Ihre GPU-Anforderungen angeben, deaktivieren Sie die unterstützte Clustererstellung.
Ihre Anwendung kann eine generische Nvidia-GPU oder eine bestimmte Nvidia-Plattform anfordern.
Anforderungen an das Nutzerhandbuch Ihrer App
Das Nutzerhandbuch Ihrer App muss die folgenden Informationen enthalten:
- Übersicht: Eine allgemeine Übersicht über Ihre App mit ihren grundlegenden Funktionen und Konfigurationsoptionen. Der Abschnitt muss auch einen Link zu Ihrer veröffentlichten App auf Cloud Marketplace enthalten.
- Einmalige Einrichtung: Dazu gehören Schritte zum Konfigurieren von Helm und zum Installieren der Anwendungs-
CustomResourceDefinition
(CRD), damit Ihr Cluster die Anwendungsressource verwalten kann. - Installation: Dazu gehören die folgenden Schritte:
- Befehle zum Bereitstellen Ihrer App
- In der UI-Konfiguration verfügbare Parameter übergeben
- Image-Referenzen an unveränderliche Digests anheften
- Informationen zu benutzerdefinierten Eingabefeldern, die Sie Ihrem Terraform-Modul hinzugefügt haben, sofern zutreffend. Weitere Informationen finden Sie in der Anleitung zum Hinzufügen von Eingabefeldern zu Ihrem Terraform-Modul.
- Grundlegende Nutzung: Anleitungen für die folgenden Aufgaben:
- Nutzernamen und Passwörter ändern
- Verbindung zu einer Admin-Konsole herstellen (falls zutreffend)
- Verbindung zu einem Clienttool herstellen und gegebenenfalls Beispielbefehl ausführen
- Eingehenden Traffic aktivieren und gegebenenfalls TLS-Zertifikate installieren
- Sichern und Wiederherstellen: Informationen zum Sichern des App-Status und zum Wiederherstellen des App-Status aus einer Sicherung.
- Bildaktualisierungen: Informationen zum Aktualisieren der App-Bilder für Patches oder kleinere Updates.
- Skalierung: Informationen zur Skalierung der App, falls zutreffend.
- Löschen: Anleitungen zum Löschen der App und zum Bereinigen aller Ressourcen, die möglicherweise verbleiben, z. B. PersistentVolumeClaims.
Nächste Schritte
- Lesen Sie die Anforderungen für Einträge im Cloud Marketplace.
- Terraform-Kubernetes-Anwendung für Cloud Marketplace vorbereiten
- Fügen Sie Ihre Terraform-Kubernetes-Anwendung über das Producer Portal dem Cloud Marketplace hinzu.