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 Cloud Service Mesh in GKE 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 und tr.
  • 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.

  1. Authentifizieren Sie sich mit dem Google Cloud CLI:

    gcloud auth login --project PROJECT_ID
    
  2. Aktualisieren Sie die Komponenten:

    gcloud components update
    
  3. Konfigurieren Sie kubectl so, dass es auf den Cluster verweist.

    gcloud container clusters get-credentials CLUSTER_NAME \
         --location CLUSTER_LOCATION \
         --project PROJECT_ID
    

asmcli herunterladen

In diesem Abschnitt wird beschrieben, wie Sie asmcli herunterladen.

  1. Laden Sie die Version herunter, die Cloud Service Mesh installiert, 1.23.2 um dem aktuellen Arbeitsverzeichnis:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.23 > 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
    
  2. Machen Sie das Skript ausführbar:

    chmod +x asmcli
    

Administratorberechtigungen für Cluster erteilen

  1. Achten Sie darauf, dass Sie den Kontext auf Ihren Nutzercluster festgelegt haben:

    kubectl config use-context CONTEXT
  2. 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 Cluster wie erforderlich einrichten, um Cloud Service Mesh zu installieren. Mit dieser Option nimmt asmcli keine Änderungen an Ihrem Projekt oder Cluster vor und installiert Cloud Service Mesh nicht.

asmcli validiert Folgendes:

Standardmäßig lädt asmcli die Installationsdatei herunter und extrahiert sie lädt die asm Konfigurationspaket von GitHub in ein temporäres Verzeichnis importieren. 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 oder zum Einrichten eines Multi-Cluster-Mesh-Netzwerks in privaten GKE-Clustern. 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.

./asmcli validate \
   --project_id PROJECT_ID \
   --cluster_name CLUSTER_NAME \
   --cluster_location CLUSTER_LOCATION \
   --fleet_id FLEET_PROJECT_ID \
   --output_dir DIR_PATH
  • --project_id, --cluster_name und --cluster_location geben die Projekt-ID des Clusters, den Clusternamen und die Clusterzone oder -region an.

  • --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 das asmcli das Paket asm herunterlädt und in dem die Installationsdatei extrahiert wird, die istioctl, Beispiele und Manifeste enthält. Andernfalls lädt asmcli die Dateien in ein tmp-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable $PWD funktioniert hier nicht.

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 Sie asmcli 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.

  1. Wechseln Sie zu dem Verzeichnis, das Sie in --output_dir angegeben haben.

  2. Führen Sie den folgenden Befehl aus, um den Kubernetes-Cluster auf die erforderlichen Installations- und Upgrade-Anforderungen zu prüfen. Achten Sie darauf, dass Sie die bereitgestellten istioctl-Version verwenden mit der neuen Cloud Service Mesh-Version.

    istioctl experimental precheck
    

Nächste Schritte