Abhängige Tools installieren und Cluster prüfen
Auf dieser Seite wird beschrieben, wie Sie Ihre Umgebung und Ihren Cluster für die Installation von In-Cluster Cloud Service Mesh für Kubernetes-Arbeitslasten außerhalb von Google Cloud vorbereiten.
Erforderliche Tools installieren
Sie können asmcli
in Cloud Shell oder auf Ihrem lokalen Computer ausführen, auf dem Linux ausgeführt wird. Cloud Shell installiert alle erforderlichen Tools vorab.
Wenn Sie asmcli
lokal ausführen, achten Sie darauf, dass die folgenden Tools installiert sind:
- Die Google Cloud CLI
- Die Standard-Befehlszeilentools:
awk
,curl
,grep
,sed
undtr
. git
kubectl
jq
- (Optional, um die Konnektivität zu testen) netcat (
nc
)
gcloud konfigurieren
Führen Sie die folgenden Schritte auch dann aus, wenn Sie Cloud Shell verwenden.
Authentifizieren Sie sich mit dem Google Cloud CLI:
gcloud auth login --project PROJECT_ID
Aktualisieren Sie die Komponenten:
gcloud components update
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
Legen Sie den kubectl
-Kontext gemäß der plattformspezifischen Anleitung auf Ihren Cluster außerhalb von Google Cloud fest.
asmcli herunterladen
In diesem Abschnitt wird beschrieben, wie Sie asmcli
herunterladen.
Laden Sie die Version herunter, mit der Cloud Service Mesh 1.21.5 in das aktuelle Arbeitsverzeichnis installiert wird:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.21 > asmcli
Erwartete Ausgabe:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 167k 100 167k 0 0 701k 0 --:--:-- --:--:-- --:--:-- 701k
Machen Sie das Skript ausführbar:
chmod +x asmcli
Administratorberechtigungen für Cluster erteilen
Achten Sie darauf, dass Sie den Kontext auf Ihren Nutzercluster festgelegt haben:
kubectl config use-context CONTEXT
Gewähren Sie dem Nutzerkonto Administratorberechtigungen (Ihre E-Mail-Adresse für die Anmeldung in Google Cloud). Sie benötigen diese Berechtigungen, um die erforderlichen Regeln für die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) für Cloud Service Mesh zu erstellen:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=USER_ACCOUNT
Validieren Sie Projekt und Cluster.
Sie können asmcli validate
ausführen, um dafür zu sorgen, dass Ihr Projekt und Ihr Cluster zur Installation von Cloud Service Mesh eingerichtet sind. Mit dieser Option nimmt asmcli
keine Änderungen an Ihrem Projekt oder Cluster vor und installiert Cloud Service Mesh nicht.
asmcli
validiert Folgendes:
Ihre Umgebung enthält die erforderlichen Tools.
Der Cluster erfüllt die Mindestanforderungen.
Sie haben die erforderlichen Berechtigungen für das angegebene Projekt.
Für das Projekt sind alle erforderlichen Google APIs aktiviert.
Standardmäßig lädt asmcli
die Installationsdatei herunter und extrahiert sie und lädt das asm
-Konfigurationspaket in ein temporäres Verzeichnis herunter. Vor dem Beenden gibt asmcli
eine Nachricht aus, die den Namen des temporären Verzeichnisses enthält.
Wir empfehlen, mit der Option --output_dir DIR_PATH
ein Verzeichnis für die Downloads anzugeben. Mit der Option --output_dir
können Sie bequem das istioctl
-Befehlszeilentool nutzen. Möglicherweise benötigen Sie istioctl
zur Behebung von Konfigurationsproblemen.
Außerdem sind die Konfigurationsdateien zum Aktivieren optionaler Funktionen mit asmcli
im Verzeichnis asm/istio/options
enthalten.
Führen Sie den folgenden Befehl aus, um Ihre Konfiguration zu validieren und um die Installationsdatei sowie das Paket asm
in das Verzeichnis OUTPUT_DIR
herunterzuladen.
Verwenden Sie den folgenden Befehl, um asmcli validate
auf den folgenden Plattformen auszuführen: Google Distributed Cloud (nur Software) für VMware, Google Distributed Cloud (nur Software) für Bare Metal, GKE on AWS, GKE on Azure, Amazon EKS und Microsoft AKS.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie den folgenden Befehl aus, um Ihre Konfiguration zu validieren und um die Installationsdatei sowie das Paket
asm
in das VerzeichnisOUTPUT_DIR
herunterzuladen:./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --platform multicloud
--kubeconfig
: Pfad zurkubeconfig
. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--fleet_id
: Projekt-ID des Hostprojekts der Flotte.asmcli validate
prüft, ob der Cluster bei der angegebenen Flotte registriert ist.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketasm
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.
Bei Erfolg gibt asmcli
Folgendes aus:
asmcli: Setting up necessary files... asmcli: Using asm_kubeconfig as the kubeconfig... asmcli: Checking installation tool dependencies... asmcli: Fetching/writing GCP credentials to kubeconfig file... asmcli: Verifying connectivity (10s)... asmcli: kubeconfig set to asm_kubeconfig asmcli: using context gke_example-project-12345_us-central1_cluster-2 asmcli: Getting account information... asmcli: Downloading ASM.. asmcli: Downloading ASM kpt package... fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm" asmcli: Checking required APIs... asmcli: Checking for project example-project-12345... asmcli: Reading labels for us-central1/cluster-2... asmcli: Checking for istio-system namespace... asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2... asmcli: Checking Istio installations... asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized. asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh asmcli: [WARNING]: will not function correctly. asmcli: Successfully validated all requirements to install ASM.
Wenn einer der Tests die Validierung nicht besteht, gibt asmcli
eine Fehlermeldung aus.
Wenn bei Ihrem Projekt beispielsweise nicht alle erforderlichen Google APIs aktiviert sind, wird der folgende Fehler angezeigt:
ERROR: One or more APIs are not enabled. Please enable them and retry, or run `asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them on your behalf.
Wenn Sie eine Fehlermeldung erhalten, dass asmcli
mit einem Aktivierungs-Flag ausgeführt werden muss, haben Sie die folgenden Optionen:
Fügen Sie das spezifische Flag aus der Fehlermeldung oder das Flag
--enable_all
hinzu, wenn Sieasmcli
ausführen, um die eigentliche Installation durchzuführen.Sie können Ihr Projekt und Ihren Cluster auch selbst aktualisieren, bevor Sie
asmcli
ausführen, wie unter Projekt und GKE-Cluster selbst einrichten beschrieben.
Beachten Sie, dass asmcli validate
keine Aktivierungs-Flags zulässt, da nur geprüft wird, ob Ihr Projekt und Ihr Cluster für die Installation bereit sind.
Anforderungen an Installation und Upgrades für Cluster prüfen
Prüfen Sie vor dem Upgrade, ob Ihre Konfiguration mit der neuen Version von Cloud Service Mesh kompatibel ist.
Wechseln Sie zu dem Verzeichnis, das Sie in
--output_dir
angegeben haben.Führen Sie den folgenden Befehl aus, um den Kubernetes-Cluster auf die erforderlichen Installations- und Upgrade-Anforderungen zu prüfen. Verwenden Sie die Version von
istioctl
, die mit der neuen Cloud Service Mesh-Version verteilt ist.istioctl experimental precheck