Diese Seite richtet sich an Plattformadministratoren.
Auf dieser Seite wird beschrieben, wie Sie Nutzercluster mit Terraform verwalten.
Vorbereitung
Sie müssen ein Konto haben, das Zugriff auf den Administratorcluster hat. Dieses Konto muss die erforderlichen Berechtigungen zum Verwalten von Nutzerclustern haben.
Für dieses Konto ist eine Teilmenge des Zugriffs des Plattformadministrators sowie Listenzugriff auf customresourcedefinitions
in der apiextensions.k8s.io
-API-Gruppe erforderlich. Mit diesem Konto konfigurieren Sie den Terraform-Kubernetes-Anbieter so, dass er die Ressourcen des Nutzerclusters verwalten kann. Das Konto muss die folgenden spezifischen Berechtigungen haben:
- Uneingeschränkter Zugriff auf Namespaces für die Nutzercluster im Administratorcluster, z. B.
cluster-user-cluster2
- Uneingeschränkter Zugriff auf
clusters
undnodepools
inbaremetal.cluster.gke.io
- Uneingeschränkter Zugriff auf
bootstrapservicebindings
,configmanagementfeaturespecs
,configmanagementbindings
,servicemeshfeaturespecs
,servicemeshbindings
inmanagementcenter.anthos.cloud.google.com
list
-Zugriff aufcustomresourcedefinitions
inapiextensions.k8s.io
- Wenn Sie Anthos Config Management und Anthos Service Mesh installieren müssen, benötigen Sie auch Zugriff, um das Secret in den Nutzercluster-Namespaces im Administratorcluster abzurufen, damit Sie die Anmeldedaten für die Verbindung mit dem Nutzercluster abrufen können.
Terraform-Skripts herunterladen
Laden Sie die Tarball-Datei für Terraform-Skripts vom Tab Support der Anthos Management Center Console herunter. Extrahieren Sie Skripts aus der Datei.
tar xvf terraform-scripts.tar.gz
Terraform starten und Authentifizierung einrichten
Es gibt viele Möglichkeiten, den Terraform-Kubernetes-Anbieter für die Authentifizierung bei der Administratorcluster-API einzurichten. Wählen Sie die Methode aus, die am besten zu Ihrem Anwendungsfall passt, der unter Anbietereinrichtung dokumentiert ist. Wenn Sie nicht die erforderlichen Berechtigungen im Administratorcluster haben, wenden Sie sich an Ihren Infrastrukturbetreiber.
cd cluster
terraform init
Ersetzen Sie (# TODO-Authentifizierung) durch eine der Authentifizierungsmethoden zur Providereinrichtung.
Nutzercluster erstellen
Geben Sie alle Variablen in
cluster/terraform.tfvars
an. Geben Sielogin_user_name
an, wenn er keine Root-Berechtigungen hat. Beispiel:admin_cluster_endpoint = "https://10.200.0.100:443" cluster_name = "user-cluster2" control_plane_nodes = [ { "address" = "10.200.0.26" }, { "address" = "10.200.0.21" }, { "address" = "10.200.0.22" }, ] control_plane_vip = "10.200.0.110" nodepool_nodes = [ { "address" = "10.200.0.23" }, { "address" = "10.200.0.25" }, { "address" = "10.200.0.24" }, ] address_pools = [ { "addresses" = ["10.200.0.111-10.200.0.119"] "name" = "pool1" }, ] bootstrap_service = ["test-bootstrapservice", "test-bootstrapservice-2"] anthos_baremetal_version = "1.9.0"
Änderungen anwenden Nach erfolgreicher Ausführung des Befehls wird der Nutzercluster erstellt.
terraform apply
Nutzercluster löschen
Verwenden Sie den folgenden Befehl, um einen Nutzercluster zu löschen:
terraform destroy
Eine Wartezeit wird festgelegt, um das Löschen von Ressourcen zu steuern. Um sie anzupassen, aktualisieren Sie die Variable wait_duration
. Der Grund für die Wartezeit sind fehlende Features beim Kubernetes-Anbieter (siehe diese Featureanfrage).
Wenn die Erstellung eines Nutzerclusters aufgrund einiger Probleme aussteht, verwenden Sie nicht terraform destroy
. Bereinigen Sie stattdessen die Installation manuell:
Beenden Sie den Befehl "terraform".
Löschen Sie den Nutzercluster aus der Management Center Console.
Entfernen Sie die Datei
terraform.tfstate
.
Anthos Config Management und Anthos Service Mesh aktivieren
Führen Sie die folgenden Schritte aus, um Anthos Config Management und Anthos Service Mesh zu aktivieren:
Terraform für das Terraform-Projekt
features
initialisieren.cd features terraform init
Richten Sie die Authentifizierung für den Administratorcluster ein.
Fügen Sie den privaten Schlüssel zum Git-Repository in
/etc/ssh-key/key
ein.Setzen Sie
activate_acm
undactivate_asm
auf „true“ und definieren Sie alle zugehörigen Variablen. Beispiel:cluster_name = "user-cluster2" admin_cluster_endpoint = "https://10.200.0.100:443" user_cluster_ca_certificate = "" activate_acm = true version_acm = "1.7.1" enable_acm_policy_controller = true acm_git_repo = { git_repo_url = "git@github.com:example/example.git" git_repo_branch = "main" git_policy_dir = "." git_secret_type = "ssh" } activate_asm = true version_asm = "1.9.6-asm.1"
Änderungen anwenden
terraform apply
(Optional) Passen Sie die Wartezeit für Anthos Service Mesh bei Bedarf an. Aktualisieren Sie dazu die Variable
wait_duration
.
Anthos Config Management und Anthos Service Mesh deaktivieren
Bevor Sie Anthos Config Management löschen, sollten Sie alle von Anthos Config Management synchronisierten Ressourcen im Cluster löschen.
Löschen Sie das Secret git-creds
und config-management-system
aus tfstate
. Der Operator Anthos Config Management ist für das Löschen von Ressourcen innerhalb des Nutzerclusters zuständig, nachdem ConfigManagementBinding
und ConfigManagementFeatureSpec
gelöscht wurden.
Anthos Config Management wird im Management Center nicht sofort als deinstalliert angezeigt. Es kann fünf bis zehn Minuten dauern, bis der Operator alles gelöscht hat.
terraform state rm kubernetes_namespace.config-management-system
terraform state rm kubernetes_secret.git-creds
terraform destroy
Bekannte Probleme
Derzeit ist es nicht möglich, einen Cluster zu aktualisieren. Beim Starten eines Updates versucht der Anbieter aufgrund des Problems 1378, die Finalizer für vorhandene Ressourcen zu löschen.
Der Löschbefehl für Nutzercluster und Anthos Service Mesh basiert auf einer Wartezeit aufgrund des Problems 1357. Sie müssen die Wartezeit möglicherweise entsprechend der Größe Ihres Clusters anpassen.
Der Cluster zeigt sich in Terraform schneller bereit als im Management Center (blockiert durch die Unterstützung von Daten von
kubernetes_manifest
durch den Provider).Zum Löschen von Anthos Config Management mit
terraform destroy
müssen zuerst Ressourcen aus tfstate entfernt werden. Weitere Informationen finden Sie unter Anthos Config Management und Anthos Service Mesh deaktivieren. Anthos Config Management wird im Management Center nicht sofort als deinstalliert angezeigt. Es kann etwa fünf bis zehn Minuten dauern, bis der Operator alles gelöscht hat.Der Befehl
terraform destroy
löscht den Namespace des Nutzerclusters. Die Plattformadministratoren sind nicht berechtigt, Namespaces im Administratorcluster zu löschen. Daher kann der Befehl fehlschlagen.
Beschränkungen
Mit dem aktuellen Code können Sie einen einzelnen Nutzercluster erstellen.
Der aktuelle Code enthält nicht die Konfiguration von OIDC. Für diesen Teil sind Patchfunktionen für den Kubernetes-Anbieter für die Ressource „kubernetes_manifest“ erforderlich.