Abhängige Tools installieren und Cluster prüfen

Auf dieser Seite wird beschrieben, wie Sie Ihre Umgebung und Ihren Cluster für die Installation vorbereiten. clusterinternes Cloud Service Mesh für Kubernetes-Arbeitslasten außerhalb von Google Cloud.

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
    

Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

Legen Sie den kubectl-Kontext so fest, dass er auf Ihren Cluster außerhalb von Google Cloud verweist. zu plattformspezifischen Anweisungen.

asmcli herunterladen

In diesem Abschnitt wird beschrieben, wie Sie asmcli herunterladen.

  1. Laden Sie die Version herunter, mit der Cloud Service Mesh 1.21.5 im aktuellen 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
    
  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. Ich benötigt eventuell istioctl für Fehlerbehebung bei 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.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. 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 \
       --kubeconfig KUBECONFIG_FILE \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --platform multicloud
    
    • --kubeconfig: Pfad zur kubeconfig. 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 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.

    • --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 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