Projekt und GKE-Cluster selbst einrichten

Wenn Sie Anthos Service Mesh mit asmcli installieren, kann es Ihr Projekt und Ihren GKE auf dem Google Cloud-Cluster für Sie konfigurieren, wenn Sie das Flag --enable_all oder die detaillierteren Aktivierungs-Flags angeben. Folgen Sie der Anleitung auf dieser Seite, wenn Sie die Änderungen lieber selbst vornehmen möchten, statt dass asmcli die Änderungen vornimmt.

Wenn Sie bereits eine frühere Version von Anthos Service Mesh installiert haben, müssen Sie keine Änderungen an Ihrem Projekt oder Cluster vornehmen, bevor Sie mit asmcli ein Upgrade auf die neueste Version von Anthos Service Mesh vornehmen.

Standardmäßig installiert asmcli das istio-ingressgateway nicht. Wir empfehlen, die Steuerungsebene und die Gateways separat bereitzustellen und zu verwalten. Anthos Service Mesh unterstützt die automatische Injektion für Gateway-Bereitstellungen, wodurch Anthos Service Mesh-Upgrades vereinfacht werden. Nach dem Upgrade von Anthos Service Mesh starten Sie die Gateways genau wie Ihre Dienste neu, um die neue Konfiguration der Steuerungsebene zu übernehmen. Weitere Informationen finden Sie unter Gateways installieren und aktualisieren.

Hinweise

Projekt einrichten

  1. Rufen Sie die Projekt-ID und die Projektnummer des Projekts ab, in dem der Cluster erstellt wurde.

    gcloud

    Führen Sie dazu diesen Befehl aus:

    gcloud projects list
    

    Console

    1. Wechseln Sie in der Google Cloud Console zur Seite Dashboard.

      Zur Seite "Dashboard"

    2. Klicken Sie oben auf der Seite auf die Drop-down-Liste. Wählen Sie im angezeigten Fenster Auswählen aus Ihr Projekt aus.

      Die Projekt-ID und die Projektnummer werden auf der Dashboard-Karte Projektinformationen des Projekts angezeigt:

  2. Erstellen Sie die folgenden Umgebungsvariablen:

    • Legen Sie den Arbeitslastpool mithilfe der Projekt-ID fest:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Legen Sie die Mesh-ID mithilfe der Projektnummer fest:

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Legen Sie die erforderlichen IAM-Rollen (Identitäts- und Zugriffsverwaltung) fest. Wenn Sie Projektinhaber sind, haben Sie alle erforderlichen Berechtigungen, um die Installation abzuschließen. Wenn Sie kein Projektinhaber sind, benötigen Sie jemanden, der Ihnen die folgenden spezifischen IAM-Rollen zuweisen kann. Ersetzen Sie im folgenden Befehl PROJECT_ID durch die Projekt-ID aus dem vorherigen Schritt und GCP_EMAIL_ADDRESS durch das Konto, mit dem Sie sich bei Google Cloud anmelden.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Wenn Sie beim Ausführen von asmcli das Flag --enable_all oder --enable_gcp_iam_roles angeben, werden die erforderlichen IAM-Rollen für Sie festgelegt.

  4. Aktivieren Sie die erforderlichen Google APIs:

    gcloud services enable \
        --project=PROJECT_ID \
        mesh.googleapis.com
    

    Neben mesh.googleapis.com werden mit diesem Befehl auch folgende APIs aktiviert:

    API Beschreibung
    meshconfig.googleapis.com Leitet Konfigurationsdaten von Ihrem Mesh an Google Cloud weiter. Darüber hinaus können Sie auf die Anthos Service Mesh-Seiten in der Google Cloud Console zugreifen und die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) verwenden.
    meshca.googleapis.com Anthos Service Mesh Certificate Authority API. Ermöglicht die Verwendung eines verwalteten Zertifikatsanbieters, der in Anthos Service Mesh enthalten ist. Diese API ist auch dann aktiviert, wenn Sie Certificate Authority Service oder Istio CA verwenden.
    container.googleapis.com Wird zum Erstellen und Verwalten von containerbasierten Anwendungen verwendet, die auf der Open-Source-Technologie von Kubernetes basieren.
    monitoring.googleapis.com Verwaltet Cloud Monitoring-Daten und -Konfigurationen. Wird zum Speichern von Anwendungstelemetriedaten verwendet, die in der Google Cloud Console angezeigt werden.
    gkehub.googleapis.com Wird verwendet, um den Bereich Ihres Mesh-Netzwerks zu konfigurieren. Weitere Informationen finden Sie in der Dokumentation zur Flottenverwaltung.
    stackdriver.googleapis.com Wird von der Operations-Suite von Google Cloud verwendet, um Signale über interne und externe Anwendungen, Plattformen und Dienste von Google Cloud zu erfassen.
    opsconfigmonitoring.googleapis.com Erfasst, aggregiert und indexiert Ressourcen in Google Cloud, wodurch die Anthos Service Mesh UI aktiviert wird.
    connectgateway.googleapis.com Ermöglicht der Google-Infrastruktur, eine sichere Verbindung zu Ihren registrierten GKE-Clustern in mehreren Clouds und Hybridumgebungen herzustellen.

    Die Aktivierung der APIs kann einige Minuten dauern. Wenn die APIs aktiviert sind, sieht die Ausgabe in etwa so aus:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Wenn Sie beim Ausführen von asmcli das Flag --enable_all oder --enable_apis angeben, werden die erforderlichen APIs für Sie aktiviert.

Cluster einrichten

Wenn Sie den Parameter-Flag --enable_all oder einen der detaillierteren Flags für die Aktivierung einschließen, richtet das asmcli-Skript Ihren Cluster für Sie ein.

  1. Legen Sie die Standardzone oder -region für Google Cloud-CLI fest. Wenn Sie hier keine Standardeinstellung festlegen, müssen Sie in den gcloud container clusters-Befehlen auf dieser Seite entweder die Option --zone oder --region angeben.

    • Wenn Sie einen Cluster mit einer einzelnen Zone haben, legen Sie die Standardzone fest:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Wenn Sie einen regionalen Cluster haben, legen Sie die Standardregion fest:

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Legen Sie das Label mesh_id für den Cluster fest. Wenn Sie die vorhandenen Labels des Clusters übernehmen möchten, müssen Sie diese Labels beim Hinzufügen des Labels mesh_id angeben.

    1. So prüfen Sie, ob Ihr Cluster vorhandene Labels hat:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Suchen Sie in der Ausgabe nach dem Feld resourceLabels. Jedes Label wird in einer separaten Zeile unter dem Feld resourceLabels gespeichert. Beispiel:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Zur Vereinfachung können Sie die Labels einer Umgebungsvariablen hinzufügen. Ersetzen Sie im Folgenden YOUR_EXISTING_LABELS durch eine durch Kommas getrennte Liste der vorhandenen Labels im Cluster im Format KEY=VALUE. Beispiel: env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Legen Sie das Label mesh_id fest:

      • Wenn Ihr Cluster bereits vorhandene Labels hat, die Sie beibehalten möchten, aktualisieren Sie den Cluster mit der mesh_id und den vorhandenen Labels:

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Wenn der Cluster keine vorhandenen Labels hat, aktualisieren Sie den Cluster nur mit dem Label mesh_id:

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Workload Identity aktivieren:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    Die Aktivierung von Workload Identity kann bis zu 10 bis 15 Minuten dauern.

  4. Registrieren Sie den Cluster in der Flotte.

  5. Initialisieren Sie Ihr Projekt, um es für die Installation vorzubereiten. Mit diesem Befehl wird unter anderem ein Dienstkonto erstellt, mit dem Komponenten der Datenebene, wie der Sidecar-Proxy, sicher auf die Daten und Ressourcen Ihres Projekts zugreifen können. Ersetzen Sie im folgenden Befehl FLEET_PROJECT_ID durch das Flottenhostprojekt.

    curl --request POST  \
     --header "Authorization: Bearer $(gcloud auth print-access-token)" \
     --header "Content-Type: application/json" \
     --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \
     "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    Der Befehl gibt ein Paar leere geschweifte Klammern zurück: {}

  6. Aktivieren Sie Cloud Monitoring und Cloud Logging in GKE:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --enable-stackdriver-kubernetes
    

Ihr Projekt und Ihr Cluster sind jetzt für eine neue Installation mit asmcli bereit.

Nächste Schritte