asmcli-Referenz

Übersicht

asmcli ist ein von Google bereitgestelltes Tool, mit dem Sie Cloud Service Mesh installieren oder aktualisieren können. Wenn Sie dies zulassen, konfiguriert asmcli Ihr Projekt und Ihren Cluster so:

  • Weisten Ihnen die erforderlichen IAM-Berechtigungen (Identity and Access Management) für Ihr Google Cloud-Projekt zu.
  • Aktivieren Sie die erforderlichen Google APIs in Ihrem Google Cloud-Projekt.
  • Legt im Cluster ein Label zur Angabe des Mesh-Netzwerks fest.
  • Erstellen Sie ein Dienstkonto, mit dem Datenebenenkomponenten wie der Sidecar-Proxy sicher auf die Daten und Ressourcen Ihres Projekts zugreifen können.
  • Registriert den Cluster bei der Flotte, falls noch nicht geschehen.

Fügen Sie einfach das Flag --enable_all hinzu, wenn Sie asmcli ausführen, damit Ihr Projekt und Ihr Cluster konfiguriert werden. Weitere Informationen zu den asmcli-Optionen und -Flags finden Sie in der asmcli-Referenz.

Als Nächstes konfiguriert asmcli YAML-Dateien mit Ihren Projekt- und Clusterinformationen. Diese Konfigurationsdateien werden benötigt, um die Cloud Service Mesh-Steuerungsebene zu installieren.

Wenn Sie mit Cloud Service Mesh und Istio noch nicht vertraut sind, fahren Sie mit Unterstützte Plattformen fort. Der nächste Abschnitt soll helfen, vorhandenes Cloud Service Mesh auf 1.21zu aktualisieren.

Umstellung auf asmcli

asmcli ersetzt istioctl install und install_asm. Die Legacy-Tools werden verworfen und ab Cloud Service Mesh 1.12 nicht mehr unterstützt. Sie können sie jedoch weiterhin in Cloud Service Mesh 1.11 verwenden. Aktualisieren Sie Ihre Skripts und Tools für die Verwendung von asmcli.

Alle Cluster müssen in einer Flotte registriert sein. Weitere Informationen finden Sie unter Flottenanforderungen.

Umstellung von install_asm

Wenn Sie mit install_asm vertraut sind, erweist sich asmcli als ähnlich, allerdings mit den folgenden wichtigen Unterschieden:

  • Sie verwenden asmcli install für neue Installationen und Upgrades. Es gibt keine --mode-Option wie install_asm. Wenn Sie asmcli install ausführen, wird geprüft, ob im Cluster eine Steuerungsebene vorhanden ist. Wenn keine Steuerungsebene vorhanden ist, installiert asmcli Cloud Service Mesh. Wenn der Cluster eine vorhandene Steuerungsebene hat (entweder eine Cloud Service Mesh-Steuerungsebene oder eine Open-Source-Istio-Steuerungsebene):

    • Wenn das Überarbeitungslabel auf der vorhandenen Steuerungsebene nicht dem Überarbeitungslabel für die neue Steuerungsebene entspricht, führt asmcli ein Canary-Upgrade durch.

    • Wenn die Überarbeitungslabels der Steuerungsebene identisch sind, führt asmcli ein direktes Upgrade durch.

  • Die meisten asmcli-Optionen und -Flags verhalten sich genauso wie die für install_asm.

Umstellung von istioctl install

Wenn Sie mit istioctl install vertraut sind und normalerweise eine IstioOperator YAML-Datei über das -f-Befehlszeilenargument zum Konfigurieren der Steuerungsebene übergeben, können Sie die Datei an asmcli mithilfe der --custom_overlay-Option übergeben. In der Cloud Service Mesh-Dokumentation werden diese Dateien als Overlay-Dateien bezeichnet.

Unterstützte Plattformen

Cloud Service Mesh-Installationen in der Liste der unterstützten Plattformen können von asmcli konfiguriert oder aktualisiert werden.

Nicht alle Funktionen sind auf den Plattformen außerhalb von Google Cloud verfügbar. Weitere Informationen finden Sie unter In der clusterinternen Steuerungsebene unterstützte Features.

asmcli-Referenz

In diesem Abschnitt werden die für asmcli verfügbaren Argumente beschrieben.

Optionen

Sie haben folgende Möglichkeiten, den Cluster zu identifizieren:

Nur GKE

-p|--project_id CLUSTER_PROJECT_ID
Die Projekt-ID des Projekts, in dem der Cluster erstellt wurde.
-n|--cluster_name CLUSTER_NAME
Der Name des Clusters.
-l|--cluster_location CLUSTER_LOCATION
Entweder die Zone (bei Einzelzonenclustern) oder die Region (bei regionalen Clustern), in der der Cluster erstellt wurde.

Alle Plattformen

--kubeconfig KUBECONFIG_FILE Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht.

--ctx|--context KUBE_CONTEXT Der zu verwendende kubeconfig-Kontext. Wenn keine Angabe erfolgt, verwendet asmcli den Standardkontext.

-c|--ca {mesh_ca|gcp_cas|citadel}

Die Zertifizierungsstelle, die zum Verwalten von Zertifikaten für gegenseitiges TLS verwendet werden soll. Geben Sie mesh_ca an, um die Cloud Service Mesh-Zertifizierungsstelle zu verwenden, gcp_cas, um Certificate Authority Service zu verwenden, oder citadel, um die Istio-Zertifizierungsstelle zu verwenden. Managed Cloud Service Mesh unterstützt keine Istio-CA. Weitere Informationen finden Sie hier:

--channel CLOUD_SERVICE_MESH_CHANNEL

Verwenden Sie --channel mit einer bestimmten Cloud Service Mesh-Release-Version, um die mit dieser Release-Version verknüpfte Überarbeitung der Steuerungsebene bereitzustellen. Beispiel: --channel rapid, --channel regular und --channel stable. Dieses Flag ist erforderlich, wenn Sie bestimmte Cloud Service Mesh-Features in GKE Autopilot-Clustern konfigurieren.

Die Option --channel wird für das verwaltete Cloud Service Mesh nicht mehr unterstützt, wie in den CSM-Releasenotes erwähnt. Der Release-Kanal wird anhand des Release-Kanals Ihres GKE-Cluster bestimmt. Weitere Informationen finden Sie unter Releasekanäle für Managed Cloud Service Mesh.

--co|--custom_overlay OVERLAY_FILE
Verwenden Sie --custom_overly mit dem Namen einer YAML-Datei (als Overlay-Datei bezeichnet) mit der benutzerdefinierten Ressource IstioOperator, um die Steuerungsebene im Cluster zu konfigurieren. Sie geben eine Overlay-Datei an, um ein Feature zu aktivieren, das nicht standardmäßig aktiviert ist. Verwaltetes Cloud Service Mesh unterstützt die IstioOperator API nicht. Sie können also nicht --custom_overlay verwenden, um die verwaltete Steuerungsebene zu konfigurieren. asmcli muss die Overlay-Datei finden können, sodass sie sich entweder im selben Verzeichnis wie asmcli befinden muss oder Sie einen relativen Pfad angeben müssen. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie --co|--custom_overlay und den Dateinamen ein. Beispiel: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
--hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS
Wenn Sie angehängte Amazon EKS-Cluster verwenden, nutzen Sie --hub-registration-extra-flags, um den Cluster in der Flotte zu registrieren, wenn er nicht bereits registriert ist.
-k|--key_file FILE_PATH
Die Schlüsseldatei für ein Dienstkonto. Lassen Sie diese Option weg, wenn Sie kein Dienstkonto verwenden.
--network_id NETWORK_ID
Verwenden Sie --network_id um das Label topology.istio.io/network festzulegen, das auf den Namespace istio-system angewendet wird. Bei GKE ist --network_id standardmäßig der Netzwerkname für den Cluster. In anderen Umgebungen wird default verwendet.
-o|--option OVERLAY_FILE

Der Name der Overlay-Datei (ohne die Erweiterung .yaml), die asmcli aus dem anthos-service-mesh-Repository herunterlädt, um ein optionales Feature zu aktivieren. Sie benötigen eine Internetverbindung, um --option zu verwenden. Die Optionen --option und --custom_overlay sind ähnlich, aber ihr Verhalten unterscheidet sich geringfügig:

  • Verwenden Sie --custom_overlay, wenn Sie die Einstellungen in der Overlay-Datei ändern müssen.

  • Verwenden Sie --option, um ein Feature zu aktivieren, das keine Änderungen an der Overlay-Datei erfordert, z. B. zum Konfigurieren von Audit-Richtlinien für Ihre Dienste.

Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie -o|--option und den Dateinamen ein. Beispiel: -o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

Wenn keine Angabe erfolgt, erstellt asmcli ein temporäres Verzeichnis, in das die Dateien und Konfigurationen für die Installation von Cloud Service Mesh heruntergeladen werden. Verwenden Sie das Flag --output-dir, um einen relativen Pfad zu einem Verzeichnis anzugeben, das stattdessen verwendet werden soll. Nach Abschluss enthält das angegebene Verzeichnis die Unterverzeichnisse asm und istio-1.21.5-asm.12. Das Verzeichnis asm enthält die Konfiguration für die Installation. Das Verzeichnis istio-1.21.5-asm.12 enthält den extrahierten Inhalt der Installationsdatei, die istioctl, Beispiele und Manifeste enthält. Wenn Sie --output-dir angeben und das Verzeichnis bereits die erforderlichen Dateien enthält, verwendet asmcli diese Dateien, anstatt sie noch einmal herunterzuladen.

--platform PLATFORM {gcp|multicloud}

Die Plattform oder der Anbieter des Kubernetes-Clusters. Standardmäßig gcp (für GKE-Cluster). Für alle anderen Plattformen verwenden Sie multicloud.

-r|--revision_name REVISION NAME

Ein Überarbeitungslabel ist ein Schlüssel/Wert-Paar, das auf der Steuerungsebene festgelegt wird. Der Schlüssel des Überarbeitungslabels ist immer istio.io/rev. Standardmäßig legt asmcli den Wert für das Überarbeitungslabel anhand der Cloud Service Mesh-Version fest, z. B. asm-1215-12. Fügen Sie diese Option ein, wenn Sie den Standardwert überschreiben und einen eigenen Wert angeben möchten. Das Argument REVISION NAME muss ein DNS-1035-Label sein. Für den Namen gilt also Folgendes:

  • Er darf höchstens 63 Zeichen enthalten.
  • Er darf nur kleingeschriebene, alphanumerische Zeichen und "-" enthalten.
  • Er muss mit einem Buchstaben beginnen.
  • Er muss mit einem alphanumerischen Zeichen enden.

Der für die Validierung verwendete Regex lautet '[a-z]([-a-z0-9]*[a-z0-9])?'.

-s|--service_account ACCOUNT
Der Name eines Dienstkontos, das zum Installieren von Cloud Service Mesh verwendet wird. Wenn nicht angegeben, wird das aktive Nutzerkonto in der aktuellen gcloud-Konfiguration verwendet. Wenn Sie das aktive Nutzerkonto ändern müssen, führen Sie gcloud auth login aus.

Optionen für benutzerdefiniertes Istio-CA-Zertifikat

Wenn Sie --ca citadel angegeben haben und eine benutzerdefinierte Zertifizierungsstelle nutzen, verwenden Sie die folgenden Optionen:

  • --ca_cert FILE_PATH: Zwischenzertifikat
  • --ca_key FILE_PATH: Schlüssel für das Zwischenzertifikat
  • --root_cert FILE_PATH: Root-Zertifikat
  • --cert_chain FILE_PATH: Zertifikatskette

Weitere Informationen finden Sie unter Vorhandene CA-Zertifikate einbinden.

Flags zur Aktivierung

Über die Flags, die mit --enable beginnen, kann asmcli die erforderlichen Google APIs aktivieren, die erforderlichen IAM-Berechtigungen (Identity and Access Management) festlegen und Ihre Cluster aktualisieren. Sie können Ihr Projekt und Ihren Cluster auch selbst aktualisieren, bevor Sie asmcli ausführen. Alle Aktivierungs-Flags sind nicht mit asmcli validate kompatibel. Wenn Sie beim Ausführen von asmcli validate ein Aktivierungs-Flag angeben, wird der Befehl mit einem Fehler beendet.

-e|--enable_all
Damit lassen Sie zu, dass asmcli alle unten beschriebenen einzelnen Aktivierungsaktionen ausführt.
--enable_cluster_roles
Lassen Sie zu, dass asmcli versucht, den Google Cloud-Nutzer oder das Dienstkonto, auf dem asmcli ausgeführt wird, an die Rolle cluster-admin im Cluster zu binden. asmcli bestimmt das Nutzerkonto über den Befehl gcloud config get core/account. Wenn Sie asmcli lokal mit einem Nutzerkonto ausführen, müssen Sie den Befehl gcloud auth login aufrufen, bevor Sie asmcli ausführen. Wenn Sie das Nutzerkonto ändern müssen, führen Sie den Befehl gcloud config set core/account GCP_EMAIL_ADDRESS aus. Dabei ist GCP_EMAIL_ADDRESS das Konto, mit dem Sie sich bei Google Cloud anmelden.
--enable_cluster_labels
Damit lassen Sie zu, dass asmcli die erforderlichen Clusterlabels festlegt.
--enable_gcp_components

Damit erlauben Sie asmcli, die folgenden erforderlichen von Google Cloud verwalteten Dienste und Komponenten zu aktivieren:

--enable_gcp_apis

Damit lassen Sie zu, dass asmcli alle erforderlichen Google APIs aktiviert.

--enable_gcp_iam_roles

Damit lassen Sie zu, dass asmcli die erforderlichen IAM-Berechtigungen festlegt.

--enable_meshconfig_init

Erlauben Sie dem Script, den Meshconfig-Endpunkt in Ihrem Namen zu initialisieren. Implied von --enable_gcp_components und --managed.

--enable_namespace_creation

Erlauben Sie asmcli, den Stamm-Namespace istio-system zu erstellen.

--enable_registration

Damit erlauben Sie asmcli, den Cluster in dem Projekt zu registrieren, in dem sich der Cluster befindet. Wenn Sie dieses Flag nicht hinzufügen, führen Sie die Schritte unter Cluster registrieren aus, um den Cluster manuell zu registrieren. Im Gegensatz zu den anderen Aktivierungs-Flags ist --enable_registration nur dann in --enable_all enthalten, wenn Sie eine Option wie --option hub-meshca angeben, für die eine Clusterregistrierung erforderlich ist. Andernfalls müssen Sie dieses Flag separat angeben.

Weitere Flags

--dry_run
Befehle drucken, aber nicht ausführen.
--fleet_id
Registrieren Sie einen Cluster mit der Hostprojekt-ID des Gerätepools für eine Flotte. Dieses Flag ist für Nicht-Google Cloud-Cluster erforderlich. Wenn nicht für Google Cloud-Cluster angegeben, wird standardmäßig die Projekt-ID des Clusters verwendet. Sie können asmcli install vor der Installation zusammen mit --fleet_id oder als Teil der Installation ausführen, indem Sie die Flags --enable-registration und --fleet-id übergeben. Diese Einstellung kann nach der Konfiguration nicht mehr geändert werden.
--managed
Veraltet. Stellen Sie eine verwaltete Remote-Steuerungsebene bereit, anstatt eine clusterintern zu installieren.
--offline
Führen Sie eine Offlineinstallation mit dem vorab heruntergeladenen Paket im Ausgabeverzeichnis aus. Wenn das Verzeichnis nicht angegeben ist oder die erforderlichen Dateien nicht enthält, wird das Script mit einem Fehler beendet.
--only_enable
Führen Sie die angegebenen Schritte aus, um den aktuellen Nutzer/Cluster einzurichten. Es wird aber nichts installiert.
--only_validate
Führen Sie die Validierung durch, aber aktualisieren Sie nicht das Projekt oder den Cluster und installieren Sie nicht Cloud Service Mesh. Dieses Flag ist nicht mit den Flags zur Aktivierung kompatibel. asmcli endet mit einem Fehler, wenn Sie --only_validate mit einem Aktivierungs-Flag angeben.
--print_config
Anstatt Cloud Service Mesh zu installieren, drucken Sie die gesamte kompilierte YAML als Standardausgabe (stdout). Alle anderen Ausgaben werden in Standardfehler (stderr) geschrieben, auch wenn sie normalerweise an stdout gesendet würden. Wenn Sie dieses Flag angeben, überspringt asmcli alle Validierungen und die Einrichtung.
--disable_canonical_service
Standardmäßig stellt asmcli den kanonischen Dienstüberwacher in Ihrem Cluster bereit. Wenn Sie nicht möchten, dass asmcli den Überwacher bereitstellt, geben Sie --disable_canonical_service an. Weitere Informationen finden Sie unter kanonischen Dienstüberwacher aktivieren und deaktivieren.
-h|--help
Zeigt eine Hilfemeldung an, in der die Optionen und Flags beschrieben und der Vorgang beendet wird.
--use_managed_cni
Verwaltete CNI verwenden. Wenn dieses Flag nicht übergeben wird, werden die statischen CNI-Manifeste von asmcli angewendet.
--use_vpcsc
Wenn Ihre Organisation VPC Service Controls für Ihr Projekt erzwingt, müssen Sie verwaltetes Cloud Service Mesh mit dem Flag --use_vpcsc konfigurieren. Andernfalls scheitert die Installation.
-v|--verbose
Beim Ausführen von asmcli wird der Befehl ausgegeben, der als Nächstes ausgeführt wird. Mit dem Flag --verbose gibt asmcli den Befehl auch nach der Ausführung aus.
--version
Gibt die Version von asmcli aus und beendet den Vorgang. Wenn Sie nicht die neueste Version haben, können Sie die neueste Version von asmcli_1.21 herunterladen.