DM Convert für die Umstellung auf Kubernetes Resource Model (KRM) oder Terraform verwenden

Mit Deployment Manager Konvertierung (DM Convert) können Sie Ihre Deployment Manager-Konfigurationen und Vorlagen in andere deklarative Anwendungen umwandeln Konfigurationsformate, die von Google unterstützt werden. Google unterstützt derzeit das Kubernetes-Ressourcenmodell (KRM) und Terraform.

Vorteile der Konvertierung in KRM oder Terraform

KRM und Terraform sind beliebte Optionen zum Verwalten von Google Cloud-Diensten und -Infrastruktur. Sie bieten aktiv aktualisierte Systeme und unterstützen moderne Features wie die Secret-Verwaltung und den kontinuierlichen Abgleich (für KRM).

2020 hat Google Config Connector gestartet, um Kunden bei der Verwendung von Kubernetes zur Verwaltung von Google Cloud-Ressourcentypen zu unterstützen. Google arbeitet auch mit HashiCorp zusammen, um den Terraform-Anbieter für Google Cloud zu entwickeln.

Kubernetes-Ressourcenmodell (KRM)

KRM ist ein Modell für die Erstellung von APIs und Ressourcendefinitionen für die deklarative Konfigurationsverwaltung. Sie stellt Google Cloud-Ressourcen als benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs) dar. Beispielsweise können Sie eine Instanz einer Cloud Spanner-Datenbank in KRM so definieren:

apiVersion: spanner.cnrm.cloud.google.com/v1beta1
kind: SpannerInstance
metadata:
  name: spanner-instance-sample
spec:
  config: regional-us-west1
  displayName: Spanner Instance Sample
  numNodes: 2

Zu den Features von KRM gehören ein kontinuierlicher Abgleich mit Operatoren, leicht lesbare deklarative Konfigurationsdateien und die Einbindung in andere Kubernetes-Tools. Wenn Sie beispielsweise das Add-on Config Connector für Kubernetes verwenden, können Sie Änderungen an Ihren Konfigurationsdateien vornehmen. Führen Sie dazu den folgenden Befehl aus:

kubectl apply -f

Terraform

Terraform ist ein Open-Source-Tool für die Bereitstellung von Infrastruktur. Sie können mit Terraform deklarative Konfigurationen schreiben, um Google Cloud-Dienste und -Ressourcen zu verwalten.

Unterstützte Typen und Typanbieter

DM Convert konvertiert YAML- und Python-Vorlagendateien für Deployment Manager in KRM- oder Terraform-Konfigurationsdateien.

Mit dem Flag --list-supported-types können Sie den aktuellen Status der Unterstützung von DM Convert für Typanbieter und Ressourcentypen prüfen.

Informationen zum Übersetzen von Konzepten mit DM Convert

Die folgende Tabelle zeigt, wie DM Convert Konzepte aus Deployment Manager in KRM und Terraform übersetzt:

Deployment Manager-Konzept KRM/Config Connector-Konvertierung Terraform-Konvertierung
Verweise Ressourcenreferenzen, wenn das Feld im KRM-Schema als Referenz definiert wird Wenn im Feld im KRM-Schema kein Feld definiert ist, wird die Deployment Manager-Referenz durch den aufgelösten Wert ersetzt. Terraform-Referenzen verhalten sich ähnlich wie Deployment Manager-Referenzen.
Explizite Abhängigkeiten (depends_on) Explizite Abhängigkeitsreihenfolge wird nicht unterstützt. Ressourcen werden Eventual Consistency verwendet. depends_on
Identitäts- und Zugriffsverwaltungsbindungen (autoritative accessControl-Blöcke) IAMPolicy <resource_type>_iam_policy-Typen, z. B. google_pubsub_topic_iam_policy
IAM-Bindungen (nicht autoritative iamMemberBinding-Typen) IAMPolicyMember <resource_type>_iam_member (z. B. google_project_iam_member)
Zusammengesetzte Typen Zusammengesetzte Typen wurden verworfen. Mit DM Convert werden sie nicht konvertiert. Zusammengesetzte Typen wurden verworfen. Mit DM Convert werden sie nicht konvertiert.
Aktionen, Anbieter für benutzerdefinierte Typen und Ausgaben Nicht unterstützt. Aktionen mit deklarativen Entsprechungen in Terraform werden konvertiert. Weitere Informationen finden Sie unter Unterstützung für Aktionen.

Unterstützung für Aktionen in DN Convert (für Terraform)

Actions ist ein Vorschaufeature für Deployment Manager, mit dem die verfügbaren API-Methoden erweitert werden. Actions wird nicht unterstützt und DM-Konvertierung konvertiert keine Aktionen, die keine deklarative Entsprechungen in Terraform haben. Beispiel:

  • APIs patchen, löschen und auflisten

  • In benutzerdefinierten Typanbietern definierte APIs

  • Benutzerdefinierte APIs, z. B. sqladmin-v1beta4:sql.instances.restart

DM Convert unterstützt in den folgenden Fällen die Konvertierung zu Terraform-Entsprechungen für Actions:

  • Es ersetzt Aktionsaufrufe für APIs, die eine Ressource mit entsprechenden Terraform-Ressourcen einfügen. Beispielsweise wird action: gcp-types/storage-v1:storage.buckets.insert in google_storage_bucket konvertiert.

  • Aktionsaufrufe werden in APIs konvertiert, die eine Ressource nach Möglichkeit in Terraform-data-Typen übertragen. Beispielsweise wird actions: gcp-types/compute-v1:compute.subnetworks.get in google_compute_subnetwork konvertiert.

  • Sie wandelt setIamPolicy-Befehle entweder in *_iam_policy- (autoritative) oder *_iam_member- (nicht autoritative) Ressourcen um, je nachdem, ob sie mit getIamPolicy verwendet werden oder nicht.

Informationen zum Migrieren der Aktion toActions“ zu deklarativen Alternativen in Deployment Manager finden Sie unter Nutzung von Aktionen ersetzen.

Datenerfassung in DM Convert

Was wir standardmäßig erheben

Das DM Convert-Tool sendet standardmäßig anonyme Nutzungsdaten an Google, damit wir das Tool verwalten und verbessern können. Wenn das DM Convert-Tool ausgeführt wird, werden Daten über den angeforderten Vorgang, den Erfolg des Vorgangs und das Timing der Konvertierung erfasst. Diese Daten sind anonym und es werden keine personenidentifizierbaren Informationen, sensiblen Daten oder Kundeninhalte ausgeschlossen.

Die Nutzungsdaten können Folgendes enthalten:

  • Eingabeparameter für den Conversion-Befehl: Beim Ausführen des Tools werden die Parameterwerte des Conversion-Befehls aufgezeichnet, einschließlich des Ausgabeformats (KRM oder Terraform) und boolescher Darstellungen, ob andere Flags angegeben sind. Die spezifischen Werte werden nicht erfasst. dieser Flags).

  • Conversion-Ergebnis: Wir erfassen die Ergebnisse der Conversion, einschließlich des Conversion-Status (SUCCESS oder FAILURE) sowie des Fehlercodes und der Fehlermeldung, sofern ein Problem auftritt.

  • Conversion Time:Es werden die Start- und Endzeiten der Conversion erfasst.

So verwenden wir diese Daten

Google erhebt und verarbeitet die Nutzungsdaten zu folgenden Zwecken:

  • Erfahren, wie das Tool verwendet wird und welche Features und Einstellungen am beliebtesten sind.

  • Diagnostizieren Sie eine fehlgeschlagene Verwendung des Tools und bieten Sie den Nutzern Unterstützung bei der technischen Unterstützung.

  • Verbessern Sie das Tool, indem Sie Probleme beheben und möglicherweise die Funktionsabdeckung erhöhen.

Datenerfassung deaktivieren

Google erfasst standardmäßig Nutzungsdaten, wenn Sie eine Konvertierung ausführen. Diese Datenerfassung kann jedoch deaktiviert werden.

Um die Datenerfassung für eine bestimmte Conversion zu deaktivieren, können Sie im Conversion-Befehl das Flag --opt_out_data_collection=true angeben. Wenn Sie diese Datenerfassung in Zukunft deaktivieren möchten, müssen Sie das Flag jedes Mal angeben, wenn Sie eine Conversion ausführen.

Wenn Sie die Datenerfassung für eine bestimmte Conversion aktivieren möchten, können Sie das Flag --opt_out_data_collection=false im Conversion-Befehl angeben oder das Flag im Befehl weglassen.