Anthos Service Mesh installieren

Auf dieser Seite wird erläutert, wie Sie Anthos Service Mesh auf GKE und lokalen Plattformen installieren:

  • asmcli ausführen, um eine neue Installation von Anthos Service Mesh 1.15.7-asm.23 durchzuführen
  • Stellen Sie optional ein Ingress-Gateway bereit.
  • Ihre Arbeitslasten bereitstellen oder noch einmal bereitstellen, um Sidecar-Proxys einzufügen

Beschränkungen

Beachten Sie die folgende Einschränkung:

  • Alle Anthos Service Mesh-Cluster für ein Mesh-Netzwerk müssen jederzeit bei derselben Flotte registriert sein, um Anthos Service Mesh verwenden zu können. Andere Cluster im Projekt eines Anthos Service Mesh-Clusters dürfen nicht in einer anderen Flotte registriert sein.

  • Das asmcli-Tool muss Zugriff auf den GKE-Endpunkt (Google Kubernetes Engine) haben. Sie können den Zugriff über einen "Jump"-Server konfigurieren, z. B. eine Compute Engine-VM in der Virtual Private Cloud (VPC), die bestimmten Zugriff gewährt.

Hinweise

Folgende Voraussetzungen müssen Sie erfüllt haben:

Anthos Service Mesh installieren

Im Folgenden wird beschrieben, wie Sie Anthos Service Mesh installieren:

  1. Führen Sie asmcli install aus, um die clusterinterne Steuerungsebene in einem einzelnen Cluster zu installieren. In den folgenden Abschnitten finden Sie Beispiele für Befehlszeilen. Die Beispiele enthalten sowohl erforderliche Argumente als auch optionale Argumente, die für Sie nützlich sein könnten. Wir empfehlen, immer das Argument output_dir anzugeben, damit Sie Beispielgateways und -tools wie istioctl leicht finden können. In der Navigationsleiste auf der rechten Seite finden Sie eine Liste der Beispiele.

  2. Private GKE-Cluster benötigen einen zusätzlichen Firewall-Konfigurationsschritt, um Traffic an istiod zuzulassen.

  3. Optional können Sie ein Ingress-Gateway installieren. Standardmäßig installiert asmcli nicht das istio-ingressgateway. Wir empfehlen, die Steuerungsebene und die Gateways separat bereitzustellen und zu verwalten. Wenn Sie das standardmäßige istio-ingressgateway für die clusterinterne Steuerungsebene installieren möchten, fügen Sie das Argument --option legacy-default-ingressgateway ein.

  4. Damit die Einrichtung von Anthos Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.

  5. Wenn Sie Anthos Service Mesh auf mehreren Clustern installieren, führen Sie in jedem Cluster asmcli install aus. Achten Sie beim Ausführen von asmcli install darauf, für jeden Cluster dieselbe FLEET_PROJECT_ID zu verwenden. Nachdem Anthos Service Mesh installiert ist, lesen Sie die Anweisungen zum Einrichten eines Multi-Cluster-Meshs auf GKE oder außerhalb von Google Cloud.

  6. Wenn sich Ihre Cluster in verschiedenen Netzwerken befinden (weil sie im Inselmodus sind), sollten Sie mithilfe des Flags --network_id einen eindeutigen Netzwerknamen an asmcli übergeben.

Standardfeatures und Mesh-CA installieren

In diesem Abschnitt wird beschrieben, wie Sie asmcli ausführen, um Anthos Service Mesh mit den unterstützten Standardfeatures für Ihre Plattform zu installieren und die Anthos Service Mesh-Zertifizierungsstelle (Mesh-CA) zu aktivieren.

GKE

Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit Standardfeatures und Mesh CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca
  • --project_id, --cluster_name und --cluster_location geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.
  • --fleet_id: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendet asmcli das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.
  • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
  • --enable_all: Ermöglicht dem Skript Folgendes:
    • Erforderliche IAM-Berechtigungen gewähren.
    • Erforderliche Google APIs aktivieren.
    • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
    • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
  • --ca mesh_ca Mesh CA als Zertifizierungsstelle verwenden. asmcli konfiguriert Mesh CA für die Verwendung der Workload Identity der Flotte.

Lokal

Führen Sie die folgenden Befehle in GKE on VMware oder Google Distributed Cloud Virtual for Bare Metal aus, um die Steuerungsebene mit Standardfeatures und Mesh CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • --ca mesh_ca Mesh CA als Zertifizierungsstelle verwenden. asmcli konfiguriert Mesh CA für die Verwendung der Workload Identity der Flotte.

Um SLOs und Infrastrukturmesswerte in der Anthos Service Mesh-UI anzuzeigen, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Anthos Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.

Standardfeatures und Certificate Authority (CA) Service installieren

In diesem Abschnitt wird beschrieben, wie Sie asmcli ausführen, um Anthos Service Mesh mit den unterstützten Standardfeatures für Ihre Plattform zu installieren und CA Service als Zertifizierungsstelle zu aktivieren.

Neben Mesh CA können Sie auch Anthos Service Mesh zur Verwendung von Certificate Authority Service konfigurieren. Dieser Leitfaden bietet eine Möglichkeit zur Integration in CA Service, die für die folgenden Anwendungsfälle empfohlen wird:

  • Wenn Sie unterschiedliche CAs benötigen, um Arbeitslastzertifikate auf unterschiedlichen Clustern zu signieren.
  • Wenn Sie Zertifikate von benutzerdefinierten istiod-CA-Plug-ins verwenden möchten.
  • Wenn Sie Ihre Signaturschlüssel in einem verwalteten HSM sichern müssen.
  • Wenn Sie in einer stark regulierten Branche tätig sind und der Compliance unterliegen.
  • Wenn Sie Ihre Anthos Service Mesh-Zertifizierungsstelle mit einem benutzerdefinierten Unternehmensstammzertifikat verketten möchten, um Arbeitslast-Zertifikate zu signieren.

Die Kosten für Mesh CA sind im Preis für Anthos Service Mesh inbegriffen. CA Service ist nicht im Basispreis für Anthos Service Mesh enthalten und wird separat in Rechnung gestellt. Darüber hinaus enthält CA Service ein explizites SLA, die Mesh-CA jedoch nicht.

Für diese Einbindung erhalten alle Arbeitslasten in Anthos Service Mesh IAM-Rollen:

  • privateca.workloadCertificateRequester
  • privateca.auditor
  • privateca.template (erforderlich, wenn Sie eine Zertifikatsvorlage verwenden)

CA Service konfigurieren

  1. Achten Sie darauf, dass sich der CA-Pool in der Stufe DevOps und in derselben Region wie der Cluster befindet, den er bedient, um übermäßige Latenzprobleme oder potenzielle regionenübergreifende Ausfälle zu vermeiden. Weitere Informationen finden Sie unter Arbeitslastoptimierte Stufen.
  2. Erstellen Sie den CA-Pool, um mindestens eine aktive Zertifizierungsstelle in diesem CA-Pool zu erhalten, die sich im selben Projekt wie der GKE-Cluster befindet. Verwenden Sie untergeordnete CAs, um Anthos Service Mesh-Arbeitslastzertifikate zu signieren. Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
  3. Wenn nur Zertifikate für Anthos Service Mesh-Arbeitslasten signiert werden sollen, richten Sie die folgende Ausstellungsrichtlinie für den CA-Pool ein:

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Mit dem folgenden Befehl können Sie die Ausstellungsrichtlinie des CA-Pools aktualisieren:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Informationen zum Festlegen einer Richtlinie für einen Pool finden Sie unter Zertifikatsausstellungsrichtlinie verwenden.

  5. Wenn Sie eine Zertifikatsvorlage verwenden, konfigurieren Sie diese jetzt. Weitere Informationen finden Sie im CA Service-Leitfaden für Workload Identity-Zertifikate. Die Zertifikatvorlage muss in derselben Region wie der CA-Pool erstellt werden. Wenn es mehrere Regionen für CA-Pools gibt, erstellen Sie eine Zertifikatvorlage pro Region.

Anthos Service Mesh für die Verwendung von CA Service konfigurieren

GKE

  1. Installieren Sie die Anthos Service Mesh-Steuerungsebene, die Certificate Authority Service als Zertifizierungsstelle verwendet:

    ./asmcli install \
    --project_id PROJECT_ID \
    --cluster_name CLUSTER_NAME \
    --cluster_location CLUSTER_LOCATION \
    --enable_all \
    --ca gcp_cas \
    --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • --ca gcp_casVerwenden Sie Certificate Authority Service als Zertifizierungsstelle. Das Ändern von Zertifizierungsstellen während eines Upgrades führt zu Ausfallzeiten. asmcli konfiguriert den Zertifizierungsstellendienst für die Verwendung des Workload Identity der Flotte.
    • --ca_pool Die vollständige Kennung für den CA-Pool des Certificate Authority Service. Wenn die Zertifikatsvorlage verwendet wird, hängen Sie die Vorlagen-ID durch : getrennt an.
      --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
      
  2. Installieren Sie ein Ingress-Gateway, um eingehende oder ausgehende HTTP/TCP-Verbindungen zu empfangen. Weitere Informationen finden Sie unter Gateways installieren.

  3. Schließen Sie die Anthos Service Mesh-Installation ab, um das automatische Einfügen des Sidecar-Proxys für Ihre Arbeitslasten zu aktivieren. Weitere Informationen finden Sie unter Arbeitslasten bereitstellen und neu bereitstellen.

Lokal

Führen Sie die folgenden Befehle in GKE on VMware oder Google Distributed Cloud Virtual for Bare Metal aus, um die Steuerungsebene mit Standardfeatures und Certificate Authority Service zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    ./asmcli install \
    --kubeconfig KUBECONFIG_FILE \
    --fleet_id FLEET_PROJECT_ID \
    --output_dir DIR_PATH \
    --enable_all \
    --ca gcp_cas \
    --platform multicloud \
    --ca_pool  projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • --ca gcp_casVerwenden Sie Certificate Authority Service als Zertifizierungsstelle. Das Ändern von Zertifizierungsstellen während eines Upgrades führt zu Ausfallzeiten. asmcli konfiguriert den Zertifizierungsstellendienst für die Verwendung des Workload Identity der Flotte.
    • --ca_pool Die vollständige Kennung für den CA-Pool des Certificate Authority Service. Wenn Sie eine Zertifikatsvorlage verwenden, hängen Sie die Vorlagen-ID durch : getrennt an. Beispiel:
      --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
      

Um SLOs und Infrastrukturmesswerte in der Anthos Service Mesh-UI anzuzeigen, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Anthos Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.

Standardfeatures mit Istio-CA installieren

In diesem Abschnitt wird Folgendes erläutert:

  • Zertifikate und Schlüssel für die Istio-Zertifizierungsstelle erstellen, die Anthos Service Mesh zum Signieren Ihrer Arbeitslasten verwendet
  • asmcli ausführen, um Anthos Service Mesh mit Standardfeatures zu installieren und Istio-CA zu aktivieren

Standardmäßig Umgebungen, die Anthos Service Mesh mit Istio-CA-Messwerten auf Prometheus installieren. Wenn Sie die Anthos Service Mesh-Dashboards verwenden möchten, müssen Sie Stackdriver aktivieren. Weitere Informationen finden Sie unter Mit optionalen Funktionen installieren.

Für eine optimale Sicherheit empfehlen wir dringend, eine Offline-Stamm-CA zu behalten und die untergeordneten Zertifizierungsstellen einzusetzen, um für jeden Cluster Zertifikate auszugeben. Weitere Informationen finden Sie unter CA-Zertifikate anschließen. In dieser Konfiguration verwenden alle Arbeitslasten im Service Mesh dieselbe Stammzertifizierungsstelle (Certificate Authority, CA). Jede Anthos Service Mesh CA verwendet einen Zwischen-CA-Signierschlüssel und ein Zertifikat, das von der Stamm-CA signiert wird. Wenn es in einem Mesh mehrere CAs gibt, wird eine Hierarchie des Vertrauens zwischen den CAs eingerichtet. Sie können diese Schritte wiederholen, um Zertifikate und Schlüssel für eine beliebige Anzahl von Zertifizierungsstellen bereitzustellen.

Das Makefile zum Generieren der Zertifikate befindet sich im Unterverzeichnis istio-1.15.7-asm.23 im Verzeichnis --output_dir, das Sie im Befehl asmcli validate angegeben haben. Wenn Sie asmcli validate nicht ausgeführt haben oder das heruntergeladene Verzeichnis nicht lokal haben, können Sie das Makefile erhalten, indem Sie die Anthos Service Mesh-Installationsdatei herunterladen und den Inhalt extrahieren.

  1. Wechseln Sie zum Verzeichnis istio-1.15.7-asm.23.

  2. Erstellen Sie ein Verzeichnis für die Zertifikate und Schlüssel:

    mkdir -p certs && \
    pushd certs
  3. Generieren Sie ein Root-Zertifikat und einen Root-Schlüssel:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Dadurch werden diese Dateien generiert:

    • root-cert.pem: Root-Zertifikat
    • root-key.pem: Root-Schlüssel
    • root-ca.conf: Konfiguration für openssl, um das Root-Zertifikat zu generieren
    • root-cert.csr: CSR für das Root-Zertifikat
  4. Generieren Sie ein Zwischenzertifikat und einen Zwischenschlüssel:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Dadurch werden diese Dateien in einem Verzeichnis namens cluster1 generiert:

    • ca-cert.pem: Zwischenzertifikate
    • ca-key.pem: Zwischenschlüssel
    • cert-chain.pem: Die von istiod verwendete Zertifikatskette
    • root-cert.pem: Root-Zertifikat

    Wenn Sie diese Schritte mit einem Offline-Computer ausführen, kopieren Sie das generierte Verzeichnis auf einen Computer mit Zugriff auf die Cluster.

  5. Kehren Sie zum vorherigen Verzeichnis zurück:

    popd
  6. Führen Sie asmcli aus, um ein Mesh-Netzwerk mit Istio-CA zu installieren:

    GKE

    Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.

     ./asmcli install \
       --project_id PROJECT_ID \
       --cluster_name CLUSTER_NAME \
       --cluster_location CLUSTER_LOCATION \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    

    • --project_id, --cluster_name und --cluster_location geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendet asmcli das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.

    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain: Zertifikatskette.

    Lokal

    Führen Sie die folgenden Befehle in GKE on VMware oder Google Distributed Cloud Virtual for Bare Metal aus, um die Steuerungsebene mit Standardfeatures und Istio-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

    1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

      kubectl config use-context CLUSTER_NAME
      
    2. Führen Sie asmcli install aus.

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
      • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
      • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
      • --enable_all: Ermöglicht dem Skript Folgendes:
        • Erforderliche IAM-Berechtigungen gewähren.
        • Erforderliche Google APIs aktivieren.
        • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
        • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
      • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
      • --ca_cert: Zwischenzertifikat.
      • --ca_key: Schlüssel für das Zwischenzertifikat.
      • --root_cert: Root-Zertifikat.
      • --cert_chain: Zertifikatskette.

    AWS

    Führen Sie die folgenden Befehle in GKE on AWS aus, um die Steuerungsebene mit Standardfeatures und Istio-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein. Sie können Ingress für das öffentliche oder das private Subnetz aktivieren.

    Öffentlich

    1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

      kubectl config use-context CLUSTER_NAME
      
    2. Führen Sie asmcli install aus.

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
      • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
      • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
      • --enable_all: Ermöglicht dem Skript Folgendes:
        • Erforderliche IAM-Berechtigungen gewähren.
        • Erforderliche Google APIs aktivieren.
        • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
        • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
      • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
      • --ca_cert: Zwischenzertifikat.
      • --ca_key: Schlüssel für das Zwischenzertifikat.
      • --root_cert: Root-Zertifikat.
      • --cert_chain Zertifikatskette.

    Privat

    1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

      kubectl config use-context CLUSTER_NAME
      
    2. Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Führen Sie asmcli install aus.

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
      • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
      • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
      • --enable_all: Ermöglicht dem Skript Folgendes:
        • Erforderliche IAM-Berechtigungen gewähren.
        • Erforderliche Google APIs aktivieren.
        • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
        • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
      • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
      • --ca_cert: Zwischenzertifikat.
      • --ca_key: Schlüssel für das Zwischenzertifikat.
      • --root_cert: Root-Zertifikat.
      • --cert_chain Zertifikatskette.
      • --custom_overlay: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.

    Amazon EKS

    Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

    1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

      kubectl config use-context CLUSTER_NAME
      
    2. Führen Sie asmcli install aus.

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
      • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
      • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
      • --enable_all: Ermöglicht dem Skript Folgendes:
        • Erforderliche IAM-Berechtigungen gewähren.
        • Erforderliche Google APIs aktivieren.
        • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
        • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
      • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
      • --ca_cert: Zwischenzertifikat.
      • --ca_key: Schlüssel für das Zwischenzertifikat.
      • --root_cert: Root-Zertifikat.
      • --cert_chain: Zertifikatskette.

    Microsoft AKS

    Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

    1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

      kubectl config use-context CLUSTER_NAME
      
    2. Führen Sie asmcli install aus.

      HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Ermöglicht die Registrierung bei GKE Hub.
      • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
      • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
      • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
      • --enable_all: Ermöglicht dem Skript Folgendes:
        • Erforderliche IAM-Berechtigungen gewähren.
        • Erforderliche Google APIs aktivieren.
        • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
        • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
      • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
      • --ca_cert: Zwischenzertifikat.
      • --ca_key: Schlüssel für das Zwischenzertifikat.
      • --root_cert: Root-Zertifikat.
      • --cert_chain: Zertifikatskette.

Mit Istio-Zertifizierungsstelle installieren und Google Cloud-Beobachtbarkeit aktiviert

Wenn Sie Anthos Service Mesh-Dashboards verwenden möchten, müssen Sie Stackdriver aktivieren.

GKE

Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.

./asmcli install \
   --project_id PROJECT_ID \
   --cluster_name CLUSTER_NAME \
   --cluster_location CLUSTER_LOCATION \
   --fleet_id FLEET_PROJECT_ID \
   --output_dir DIR_PATH \
   --enable_all \
   --ca citadel \
   --ca_cert CA_CERT_FILE_PATH \
   --ca_key CA_KEY_FILE_PATH \
   --root_cert ROOT_CERT_FILE_PATH \
   --cert_chain CERT_CHAIN_FILE_PATH
  • --project_id, --cluster_name und --cluster_location geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.
  • --fleet_id: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendet asmcli das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.
  • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
  • --enable_all: Ermöglicht dem Skript Folgendes:
    • Erforderliche IAM-Berechtigungen gewähren.
    • Erforderliche Google APIs aktivieren.
    • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
    • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
  • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
  • --ca_cert: Zwischenzertifikat.
  • --ca_key: Schlüssel für das Zwischenzertifikat.
  • --root_cert: Root-Zertifikat.
  • --cert_chain: Zertifikatskette.
  • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren.

Lokal

Führen Sie die folgenden Befehle in GKE on VMware oder Google Distributed Cloud Virtual for Bare Metal aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und der Istio-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    ./asmcli install \
       --fleet_id FLEET_PROJECT_ID \
       --kubeconfig KUBECONFIG_FILE \
       --output_dir DIR_PATH \
       --platform multicloud \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain: Zertifikatskette.
    • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren.

    Um SLOs und Infrastrukturmesswerte in der Anthos Service Mesh-UI anzuzeigen, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Anthos Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.

AWS

Führen Sie die folgenden Befehle in GKE on AWS aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und der Istio-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein. Sie können Ingress für das öffentliche oder das private Subnetz aktivieren.

Öffentlich

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain Zertifikatskette.
    • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren.

Privat

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Führen Sie asmcli install aus.

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain Zertifikatskette.
    • --custom_overlay: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.
    • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren. Alternativ können Sie Stackdriver mit --custom_overlay stackdriver.yaml aktivieren. Sie müssen entweder anthos-service-mesh-package herunterladen oder stackdriver.yaml aus dem bereitgestellten Manifest erstellen.

Amazon EKS

Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain: Zertifikatskette.
    • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren.

Microsoft AKS

Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus.

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Ermöglicht die Registrierung bei GKE Hub.
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • -ca citadel: Verwenden Sie Istio-CA als Zertifizierungsstelle.
    • --ca_cert: Zwischenzertifikat.
    • --ca_key: Schlüssel für das Zwischenzertifikat.
    • --root_cert: Root-Zertifikat.
    • --cert_chain: Zertifikatskette.
    • --option stackdriver Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit --option prometheus-and-stackdriver aktivieren.

Mit optionalen Features installieren

Eine Overlay-Datei ist eine YAML-Datei mit einer benutzerdefinierten IstioOperator-Ressource, die Sie an asmcli übergeben, um die Steuerungsebene zu konfigurieren. Sie können die Standardkonfiguration der Steuerungsebene überschreiben und eine optionale Funktion aktivieren, indem Sie die YAML-Datei an asmcli übergeben. Sie können mehr Overlays übereinander legen. Jede Overlay-Datei überschreibt die Konfiguration auf den vorherigen Ebenen. Als Best Practice empfehlen wir, dass Sie die Overlay-Dateien in Ihrem Versionsverwaltungssystem speichern.

Es gibt zwei Optionen, um optionale Features zu aktivieren: --option und --custom_overlay.

Verwenden Sie --option, wenn Sie die Overlay-Datei nicht ändern müssen. Mit dieser Methode asmcli wird die Datei aus dem GitHub-Repository abgerufen.

Verwenden Sie --custom_overlay, wenn Sie die Overlay-Datei anpassen müssen.

Weitere Informationen finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.

GKE

Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit einem optionalen Feature zu installieren. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie --custom_overlay und den Dateinamen an. Beispiel: --custom_overlay overlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca \
  --custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name und --cluster_location geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.
  • --fleet_id: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendet asmcli das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.
  • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
  • --enable_all: Ermöglicht dem Skript Folgendes:
    • Erforderliche IAM-Berechtigungen gewähren.
    • Erforderliche Google APIs aktivieren.
    • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
    • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
  • --ca mesh_ca Verwendet Mesh CA als Zertifizierungsstelle. Beachten Sie, dass asmcli die Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte konfiguriert.
  • --custom_overlay: Den Namen der Overlay-Datei angeben.

Außerhalb von Google Cloud

Führen Sie die folgenden Befehle in GKE on VMware, Google Distributed Cloud Virtual for Bare Metal, GKE on AWS, Amazon EKS oder Microsoft AKS aus. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.

  1. Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:

    kubectl config use-context CLUSTER_NAME
    
  2. Führen Sie asmcli install aus, um die Steuerungsebene mit einem optionalen Feature zu installieren. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie --custom_overlay und den Dateinamen ein. Beispiel: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca \
      --custom_overlay OVERLAY_FILE
    
    • --fleet_id: Projekt-ID des Hostprojekts der Flotte.
    • --kubeconfig Der vollständige Pfad zur kubeconfig-Datei. Die Umgebungsvariable $PWD funktioniert hier nicht. Darüber hinaus funktionieren relative kubeconfig-Dateispeicherorte, die „~“ verwenden, nicht.
    • --output_dir: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das asmcli das Paket anthos-service-mesh 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.
    • --enable_all: Ermöglicht dem Skript Folgendes:
      • Erforderliche IAM-Berechtigungen gewähren.
      • Erforderliche Google APIs aktivieren.
      • Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
      • Cluster bei der Flotte registrieren, falls noch nicht geschehen.
    • --ca mesh_ca Verwendet Mesh CA als Zertifizierungsstelle. Beachten Sie, dass asmcli die Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte konfiguriert.
    • --custom_overlay: Den Namen der Overlay-Datei angeben.

Gateways installieren

Anthos Service Mesh bietet Ihnen die Möglichkeit, Gateways als Teil Ihres Service Mesh bereitzustellen und zu verwalten. Ein Gateway beschreibt einen Load-Balancer, der am Rand des Mesh-Netzwerks arbeitet und eingehende oder ausgehende HTTP/TCP-Verbindungen empfängt. Gateways sind Envoy-Proxys, die Ihnen eine detaillierte Kontrolle über den in das Mesh-Netzwerk eingehenden und ausgehenden Traffic ermöglichen.

  1. Erstellen Sie einen Namespace für das Ingress-Gateway, falls Sie noch keinen haben. Gateways sind Nutzerarbeitslasten und sollten als Best Practice nicht im Namespace der Steuerungsebene bereitgestellt werden. Ersetzen Sie GATEWAY_NAMESPACE durch den Namen Ihres Namespace.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Erwartete Ausgabe:

    namespace/GATEWAY_NAMESPACE created
    
  2. Aktivieren Sie die automatische Einfügung auf dem Gateway. Welche Schritte erforderlich sind, hängt davon ab, ob Sie Standardlabels für Einfügungen (Beispiel:istio-injection=enabled) oder die Überarbeitungslabel im Gateway-Namespace verwenden möchten. Das Standard-Überarbeitungs-Tag und das Überarbeitungslabel werden vom Sidecar-Injektor-Webhook dazu verwendet, eingefügte Proxys einer bestimmten Überarbeitung der Steuerungsebene zuzuordnen.

    Standard-Injektionslabels

    Wenden Sie die Standard-Injektionslabels auf den Namespace an.

    kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
    

    Überarbeitungslabel

    1. Verwenden Sie den folgenden Befehl, um das Überarbeitungslabel für istiod zu finden:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      Der Befehl gibt das Überarbeitungslabel aus, das der Anthos Service Mesh-Version entspricht, z. B. asm-1157-23

    2. Wenden Sie das Überarbeitungslabel auf den Namespace an. Im folgenden Befehl ist REVISION der Wert des Überarbeitungslabels istiod, den Sie im vorherigen Schritt notiert haben.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Erwartete Ausgabe:

      namespace/GATEWAY_NAMESPACE labeled
      

    Sie können die Nachricht "istio.io/rev" not found in der Ausgabe ignorieren. Das bedeutet, dass der Namespace zuvor nicht das Label istio.io/rev hatte, das Sie bei neuen Installationen von Anthos Service Mesh oder neuen Bereitstellungen erwarten können. Da die automatische Injektion fehlschlägt, wenn ein Namespace sowohl das Label istio.io/rev als auch das Label istio-injection enthält, geben alle kubectl label-Befehle in der Anthos Service Mesh-Dokumentation explizit beide Labels an.

    Wenn der Gateway-Namespace nicht mit einem Label versehen ist, schlagen die istio-ingressgateway-Pods mit dem Fehler ImagePullBackOff fehl, wenn das Gateway versucht, das Image auto abzurufen. Dieses Bild sollte durch den Webhook ersetzt werden.

  3. Laden Sie die .yaml-Beispielkonfigurationsdatei für das Ingress Gateway aus dem anthos-service-mesh-packages-Repository herunter.

  4. Wenden Sie die .yaml-Beispielkonfiguration für das Ingress-Gateway unverändert an oder ändern Sie sie nach Bedarf.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f CONFIG_PATH/istio-ingressgateway
    

    Erwartete Ausgabe:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Best Practices für Gateways

Arbeitslasten bereitstellen und neu bereitstellen

Anthos Service Mesh verwendet Sidecar-Proxys, um die Sicherheit, Zuverlässigkeit und Beobachtbarkeit von Netzwerken zu verbessern. Mit Anthos Service Mesh werden diese Funktionen vom primären Container der Anwendung abstrahiert und in einem gemeinsamen Out-of-Process-Proxy implementiert, der als separater Container im selben Pod bereitgestellt wird.

Die Installation ist erst abgeschlossen, wenn Sie die automatische Sidecar-Proxy-Einfügung (automatische Injektion) aktivieren und die Pods für alle Arbeitslasten neu starten, die auf dem Cluster ausgeführt wurden, bevor Sie Anthos Service Mesh installiert haben.

Um die automatische Injektion zu aktivieren, versehen Sie Ihre Namespaces mit den Standard-Injektionslabels, wenn das Standard-Tag eingerichtet ist, oder mit einem Überarbeitungslabel, das bei der Installation von Anthos Service Mesh auf istiod festgelegt wurde. Das Standard-Überarbeitungs-Tag und das Überarbeitungslabel werden vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars einer istiod-Überarbeitung zuzuordnen. Nachdem Sie das Label hinzugefügt haben, müssen alle im Namespace vorhandenen Pods neu gestartet werden, damit die Sidecars eingefügt werden.

Bevor Sie neue Arbeitslasten in einem neuen Namespace bereitstellen, müssen Sie die automatische Injektion konfigurieren, damit Anthos Service Mesh den Traffic überwachen und sichern kann.

  1. Die Schritte zum Aktivieren der automatischen Injektion hängen davon ab, ob Sie Standard-Injektionslabels oder das Überarbeitungslabel verwenden möchten:

    Standard-Injektionslabels

    Im folgenden Befehl ist NAMESPACE der Name des Namespace, in dem Sie die automatische Injektion aktivieren möchten.

    kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
    

    Da die Standard-Injektionslabels die Überarbeitung einfügen, auf die das Standard-Tag verweist, ist es nicht erforderlich, Namespaces mit neuem Label zu versehen.

    Überarbeitungslabel

    1. Verwenden Sie den folgenden Befehl, um das Überarbeitungslabel für istiod zu finden:

      kubectl -n istio-system get pods -l app=istiod --show-labels
      

      Die Ausgabe sieht dann ungefähr so aus:

      NAME                                READY   STATUS    RESTARTS   AGE   LABELS
      istiod-asm-1157-23-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1157-23,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1157-23-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1157-23,istio=istiod,pod-template-hash=5788d57586

      Notieren Sie sich den Wert des Überarbeitungslabels istiod aus der Ausgabe in der Spalte LABELS, das auf das Präfix istio.io/rev= folgt. In diesem Beispiel ist der Wert asm-1157-23.

    2. Wenden Sie das Überarbeitungslabel an und entfernen Sie das Label istio-injection, falls vorhanden. Im folgenden Befehl ist NAMESPACE der Name des Namespace, in dem Sie die automatische Einfügung aktivieren möchten. REVISION ist das Überarbeitungslabel, das Sie im vorherigen Schritt notiert haben.

      kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
      

      Sie können die Nachricht "istio-injection not found" in der Ausgabe ignorieren. Das bedeutet, dass der Namespace bisher nicht das Label istio-injection hatte, was bei Neuinstallationen von Anthos Service Mesh oder neuen Bereitstellungen zu erwarten wäre. Da die automatische Injektion fehlschlägt, wenn ein Namespace sowohl das istio-injection- als auch das Überarbeitungslabel hat, geben alle kubectl label-Befehle in der Anthos Service Mesh-Dokumentation explizit beide Labels an.

  2. Wenn vor der Installation von Anthos Service Mesh in Ihrem Cluster Arbeitslasten ausgeführt wurden, starten Sie die Pods neu, um eine erneute Injektion auszulösen.

    Wie Sie Pods neu starten, hängt von der Anwendung und der Umgebung ab, in der sich der Cluster befindet. Beispielsweise können Sie in Ihrer Staging-Umgebung einfach alle Pods löschen, wodurch sie neu gestartet werden. Aber in Ihrer Produktionsumgebung haben Sie vielleicht einen Prozess, der ein Blau/Grün-Deployment implementiert, sodass Pods sicher neu gestartet werden können, um Traffic-Unterbrechungen zu vermeiden.

    Sie können kubectl verwenden, um einen rollierenden Neustart durchzuführen:

    kubectl rollout restart deployment -n NAMESPACE
    

Nächste Schritte