Asmcli-Referenz

Übersicht

Das asmcli ist ein von Google bereitgestelltes Tool, mit dem Sie ein Upgrade des Cloud Service Mesh ausführen. 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 zum Installieren des Cloud Service Mesh benötigt Steuerungsebene.

Wenn Sie noch nicht mit Cloud Service Mesh und Istio vertraut sind, fahren Sie mit dem Abschnitt Unterstützte Plattformen. Der nächste Abschnitt soll Unterstützung beim Upgrade des bestehenden Cloud Service Mesh auf 1.21.

Umstellung auf asmcli

asmcli ersetzt istioctl install und install_asm. Obwohl können Sie die Legacy-Tools in Cloud Service Mesh 1.11 weiterhin verwenden. Diese werden dann in Cloud Service Mesh 1.12 und höher nicht mehr unterstützt. Aktualisieren Sie Ihre Skripts und Tools für die Verwendung von asmcli.

Alle Cluster müssen bei einem Flotte. 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 in der bestehenden Steuerungsebene, asmcli installiert Cloud Service Mesh. Wenn der Cluster über eine vorhandene Steuerungsebene (entweder eine Cloud Service Mesh-Steuerungsebene oder eine Open-Source-Steuerungsebene) 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 bezeichnen wir diese Dateien als Overlay-Dateien.

Unterstützte Plattformen

Cloud Service Mesh-Installationen auf der Liste der Unterstützte Plattformen können konfiguriert werden. oder ein Upgrade bis zum asmcli ausführen.

Allerdings sind nicht alle Features 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. Definieren mesh_ca, um die Cloud Service Mesh-Zertifizierungsstelle (Cloud Service Mesh-Zertifizierungsstelle) zu verwenden, gcp_cas um den Certificate Authority Service zu verwenden, oder citadel, um die Istio-Zertifizierungsstelle zu verwenden. Managed Cloud Service Mesh unterstützt Istio nicht Zertifizierungsstelle. Weitere Informationen finden Sie hier:

--channel CLOUD_SERVICE_MESH_CHANNEL

Verwenden Sie --channel mit einem bestimmten Release-Version für Cloud Service Mesh um die Version der Steuerungsebene bereitzustellen, die mit dieser Release-Version verknüpft ist. Beispiel: --channel rapid, --channel regular und --channel stable. Dieses Flag ist erforderlich, wenn bestimmte Cloud Service Mesh-Features in GKE Autopilot-Cluster.

Die Option --channel wird für Managed Cloud Service Mesh nicht mehr unterstützt als die in den CSM-Versionshinweisen erwähnt werden. Die Release-Version wird anhand der Release-Version Ihres GKE-Cluster bestimmt. Weitere Informationen finden Sie unter Release-Versionen von Managed Cloud Service Mesh.

--co|--custom_overlay OVERLAY_FILE
Verwenden Sie --custom_overly mit dem Namen einer YAML-Datei (auch als Overlay-Datei), die die zu konfigurierende benutzerdefinierte Ressource IstioOperator enthält der clusterinternen Steuerungsebene. Sie legen eine Overlay-Datei fest, eine Funktion zu aktivieren das standardmäßig nicht aktiviert ist. Managed Cloud Service Mesh unterstützt den Parameter IstioOperator API, daher können Sie --custom_overlay nicht zum Konfigurieren des verwalteten Steuerungsebene. asmcli muss die Overlay-Datei finden können, muss sich entweder im selben Verzeichnis wie asmcli befinden oder Sie können ein relativen Pfads. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie --co|--custom_overlay und der Dateiname, zum 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 nicht angegeben, erstellt asmcli ein temporäres Verzeichnis, in dem lädt Dateien und Konfigurationen herunter, die für die Installation von Cloud Service Mesh erforderlich sind. 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.4-asm.5. Das Verzeichnis asm enthält die Konfiguration für die Installation. Das Verzeichnis istio-1.21.4-asm.5 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. Standardeinstellung: gcp (für GKE-Cluster). Für alle anderen Plattform verwenden, 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. Von Standardeinstellung, legt asmcli den Wert für das Versionslabel basierend auf dem Cloud Service Mesh-Version, z. B. asm-1214-5. 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 Skript, den Meshconfig-Endpunkt in Ihrem Namen zu initialisieren. Impliziert 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
Stellen Sie eine verwaltete Remote-Steuerungsebene bereit, anstatt eine clusterintern zu installieren.
--offline
Offline-Installation durchführen mithilfe des vorab heruntergeladenen Pakets im Ausgabeverzeichnis. Wenn das Verzeichnis nicht angegeben ist oder nicht die erforderlichen Dateien enthält, wird das Skript beendet. Fehler.
--only_enable
Führen Sie die angegebenen Schritte aus, um den aktuellen Nutzer/Cluster einzurichten. Es wird aber nichts installiert.
--only_validate
Validierung ausführen, aber das Projekt oder den Cluster nicht aktualisieren und nicht installieren 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, geben Sie die gesamte kompilierte YAML-Datei in 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 die Canonical Service Controller zu Ihrem Cluster. 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
Verwenden Sie das verwaltete CNI. Wenn diese Kennzeichnung nicht übergeben wurde, wendet asmcli die statischen CNI-Manifeste an.
--use_vpcsc
Wenn Ihre Organisation VPC Service Controls für Ihr Projekt verwenden möchten, müssen Sie das verwaltete 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.