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 IhrGoogle 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.24zu 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 installfür neue Installationen und Upgrades. Es gibt keine--mode-Option wieinstall_asm. Wenn Sieasmcli installausführen, wird geprüft, ob im Cluster eine Steuerungsebene vorhanden ist. Wenn keine Steuerungsebene vorhanden ist, installiertasmcliCloud 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
asmcliein Canary-Upgrade durch.Wenn die Überarbeitungslabels der Steuerungsebene identisch sind, führt
asmcliein direktes Upgrade durch.
Die meisten
asmcli-Optionen und -Flags verhalten sich genauso wie die fürinstall_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 Cloudverfü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_caan, um die Cloud Service Mesh-Zertifizierungsstelle zu verwenden,gcp_cas, um Certificate Authority Service zu verwenden, odercitadel, um die Istio-Zertifizierungsstelle zu verwenden. Managed Cloud Service Mesh unterstützt keine Istio-CA. Weitere Informationen finden Sie hier:--channel CLOUD_SERVICE_MESH_CHANNELVerwenden Sie
--channelmit einer bestimmten Cloud Service Mesh-Release-Version, um die mit dieser Release-Version verknüpfte Überarbeitung der Steuerungsebene bereitzustellen. Beispiel:--channel rapid,--channel regularund--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 basierend auf dem Release-Kanal Ihres GKE-Clusters bestimmt.
Weitere Informationen finden Sie unter Releasekanäle für Managed Cloud Service Mesh.
--co|--custom_overlay OVERLAY_FILE- Verwenden Sie
--custom_overlymit dem Namen einer YAML-Datei (als Overlay-Datei bezeichnet) mit der benutzerdefinierten RessourceIstioOperator, 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 dieIstioOperatorAPI nicht. Sie können also nicht--custom_overlayverwenden, um die verwaltete Steuerungsebene zu konfigurieren.asmclimuss die Overlay-Datei finden können, sodass sie sich entweder im selben Verzeichnis wieasmclibefinden muss oder Sie einen relativen Pfad angeben müssen. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie--co|--custom_overlayund 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_idum das Labeltopology.istio.io/networkfestzulegen, das auf den Namespaceistio-systemangewendet wird. Bei GKE ist--network_idstandardmäßig der Netzwerkname für den Cluster. In anderen Umgebungen wirddefaultverwendet. -o|--option OVERLAY_FILEDer Name der Overlay-Datei (ohne die Erweiterung
.yaml), dieasmcliaus demanthos-service-mesh-Repository herunterlädt, um ein optionales Feature zu aktivieren. Sie benötigen eine Internetverbindung, um--optionzu verwenden. Die Optionen--optionund--custom_overlaysind ä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|--optionund den Dateinamen ein. Beispiel:-o option_file1 -o option_file2 -o option_file3-D|--output_dir DIR_PATHWenn keine Angabe erfolgt, erstellt
asmcliein 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 Unterverzeichnisseasmundistio-1.24.6-asm.12. Das Verzeichnisasmenthält die Konfiguration für die Installation. Das Verzeichnisistio-1.24.6-asm.12enthält den extrahierten Inhalt der Installationsdatei, dieistioctl, Beispiele und Manifeste enthält. Wenn Sie--output-dirangeben und das Verzeichnis bereits die erforderlichen Dateien enthält, verwendetasmclidiese 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 Siemulticloud.-r|--revision_name REVISION NAMEEin Ü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 legtasmcliden Wert für das Überarbeitungslabel anhand der Cloud Service Mesh-Version fest, z. B.asm-1246-12. Fügen Sie diese Option ein, wenn Sie den Standardwert überschreiben und einen eigenen Wert angeben möchten. Das ArgumentREVISION NAMEmuss 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
asmclialle unten beschriebenen einzelnen Aktivierungsaktionen ausführt. --enable_cluster_roles- Lassen Sie zu, dass
asmcliversucht, den Google Cloud Nutzer oder das Dienstkonto, auf demasmcliausgeführt wird, an die Rollecluster-adminim Cluster zu binden.asmclibestimmt das Nutzerkonto über den Befehlgcloud config get core/account. Wenn Sieasmclilokal mit einem Nutzerkonto ausführen, müssen Sie den Befehlgcloud auth loginaufrufen, bevor Sieasmcliausführen. Wenn Sie das Nutzerkonto ändern müssen, führen Sie den Befehlgcloud config set core/account GCP_EMAIL_ADDRESSaus. Dabei ist GCP_EMAIL_ADDRESS das Konto, mit dem Sie sich bei Google Cloudanmelden. --enable_cluster_labels- Damit lassen Sie zu, dass
asmclidie erforderlichen Clusterlabels festlegt. --enable_gcp_componentsDamit erlauben Sie
asmcli, die folgenden erforderlichen von Google Cloud verwalteten Dienste und Komponenten zu aktivieren:Workload Identity, mit der GKE-Anwendungen sicher auf Google Cloud-Dienste zugreifen können.
--enable_gcp_apisDamit lassen Sie zu, dass
asmclialle erforderlichen Google APIs aktiviert.--enable_gcp_iam_rolesDamit lassen Sie zu, dass
asmclidie erforderlichen IAM-Berechtigungen festlegt.--enable_meshconfig_initErlauben Sie dem Script, den Meshconfig-Endpunkt in Ihrem Namen zu initialisieren. Implied von
--enable_gcp_componentsund--managed.--enable_namespace_creationErlauben Sie
asmcli, den Stamm-Namespaceistio-systemzu erstellen.--enable_registrationDamit 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_registrationnur dann in--enable_allenthalten, wenn Sie eine Option wie--option hub-meshcaangeben, 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ürGoogle Cloud -Cluster angegeben, wird standardmäßig die Projekt-ID des Clusters verwendet. Sie können
asmcli installvor der Installation zusammen mit--fleet_idoder als Teil der Installation ausführen, indem Sie die Flags--enable-registrationund--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.
asmcliendet mit einem Fehler, wenn Sie--only_validatemit 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
asmclialle Validierungen und die Einrichtung. --disable_canonical_service- Standardmäßig stellt
asmcliden kanonischen Dienstüberwacher in Ihrem Cluster bereit. Wenn Sie nicht möchten, dassasmcliden Überwacher bereitstellt, geben Sie--disable_canonical_servicean. 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
asmcliangewendet. --use_vpcsc- Wenn Ihre Organisation VPC Service Controls für Ihr Projekt erzwingt, müssen Sie verwaltetes Cloud Service Mesh mit dem Flag
--use_vpcsckonfigurieren. Andernfalls scheitert die Installation. -v|--verbose- Beim Ausführen von
asmcliwird der Befehl ausgegeben, der als Nächstes ausgeführt wird. Mit dem Flag--verbosegibtasmcliden Befehl auch nach der Ausführung aus. --version- Gibt die Version von
asmcliaus und beendet den Vorgang. Wenn Sie nicht die neueste Version haben, können Sie die neueste Version vonasmcli_1.24herunterladen.