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 wieinstall_asm
. Wenn Sieasmcli install
ausführen, wird geprüft, ob im Cluster eine Steuerungsebene vorhanden ist. Wenn keine Steuerungsebene vorhanden ist, installiertasmcli
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ü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 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, 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_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 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 dieIstioOperator
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 wieasmcli
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 Labeltopology.istio.io/network
festzulegen, das auf den Namespaceistio-system
angewendet wird. Bei GKE ist--network_id
standardmäßig der Netzwerkname für den Cluster. In anderen Umgebungen wirddefault
verwendet. -o|--option OVERLAY_FILE
Der Name der Overlay-Datei (ohne die Erweiterung
.yaml
), dieasmcli
aus demanthos-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 Unterverzeichnisseasm
undistio-1.21.5-asm.12
. Das Verzeichnisasm
enthält die Konfiguration für die Installation. Das Verzeichnisistio-1.21.5-asm.12
enthält den extrahierten Inhalt der Installationsdatei, dieistioctl
, Beispiele und Manifeste enthält. Wenn Sie--output-dir
angeben und das Verzeichnis bereits die erforderlichen Dateien enthält, verwendetasmcli
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 Siemulticloud
.-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 legtasmcli
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 ArgumentREVISION 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 demasmcli
ausgeführt wird, an die Rollecluster-admin
im Cluster zu binden.asmcli
bestimmt das Nutzerkonto über den Befehlgcloud config get core/account
. Wenn Sieasmcli
lokal mit einem Nutzerkonto ausführen, müssen Sie den Befehlgcloud auth login
aufrufen, bevor Sieasmcli
ausführen. Wenn Sie das Nutzerkonto ändern müssen, führen Sie den Befehlgcloud 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:Workload Identity, mit der GKE-Anwendungen sicher auf Google Cloud-Dienste zugreifen können.
--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-Namespaceistio-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, dassasmcli
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
gibtasmcli
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 vonasmcli_1.21
herunterladen.