Cloud Service Mesh für Kubernetes-Arbeitslasten außerhalb von Google Cloud installieren

Auf dieser Seite wird erläutert, wie Sie nicht verwaltetes Cloud Service Mesh im Cluster für Kubernetes-Arbeitslasten außerhalb von Google Cloud:

  • Führen Sie asmcli aus, um das Cloud Service Mesh neu zu installieren 1.21.4-asm.5.
  • Stellen Sie optional ein Ingress-Gateway bereit.
  • Ihre Arbeitslasten bereitstellen oder noch einmal bereitstellen, um Sidecar-Proxys einzufügen

Wenn Sie nicht verwaltetes, clusterinternes Cloud Service Mesh mit einem istiod-Steuerungsebene in GKE, siehe Cloud Service Mesh im Cluster in Google Cloud installieren. Beachten Sie, dass für Kubernetes-Arbeitslasten Google Cloud empfehlen wir Bereitstellung einer verwalteten Steuerungsebene

Anweisungen zur Vorbereitung einer Offline-Installation von Cloud Service Mesh finden Sie hier: Siehe Offlineinstallation von Cloud Service Mesh vorbereiten Bei der Ausführung müssen Sie die Optionen --offline und --output_dir angeben. asmcli install

Beschränkungen

Beachten Sie die folgenden Beschränkungen:

  • Alle Cloud Service Mesh-Cluster für ein Mesh-Netzwerk müssen im selben Netzwerk registriert sein. um Cloud Service Mesh zu nutzen. Andere Cluster im Projekt eines Cloud Service Mesh-Clusters darf nicht bei einem anderen Geräteflotte aus.

  • Das asmcli-Tool muss Zugriff auf die Google Kubernetes Engine (GKE) haben Endpunkt. Sie können den Zugriff über eine "Sprung" Server wie einem Compute Engine-VM innerhalb der Virtual Private Cloud (VPC), die spezifische access.

Hinweise

Folgende Voraussetzungen müssen Sie erfüllt haben:

Zum Installieren von Cloud Service Mesh im Cluster erforderliche Rollen

In der folgenden Tabelle werden die Rollen beschrieben, die für die Installation im Cluster erforderlich sind Cloud Service Mesh.

Rollenname Rollen-ID Standort erteilen Beschreibung
GKE-Hub-Administrator roles/gkehub.admin Flottenprojekt Vollständiger Zugriff auf GKE-Hubs und zugehörige Ressourcen.
Kubernetes Engine-Administrator roles/container.admin Clusterprojekt. Beachten Sie, dass diese Rolle sowohl für Flotten- als auch für Clusterprojekte für projektübergreifende Bindungen gewährt werden muss. Berechtigung zur vollständigen Verwaltung von Container-Clustern und den zugehörigen Kubernetes API-Objekten
Mesh-Konfigurationsadministrator roles/meshconfig.admin Flotten- und Clusterprojekt Gewährt Berechtigungen zum Initialisieren verwalteter Komponenten von Cloud Service Mesh wie eine verwaltete Steuerungsebene und Back-End-Berechtigung, die können Arbeitslasten mit Stackdriver kommunizieren, einzeln autorisiert (sowohl für verwaltete als auch clusterinterne Steuerungsebenen).
Projekt-IAM-Administrator roles/resourcemanager.projectIamAdmin Clusterprojekt Berechtigung zum Verwalten von Cloud IAM-Richtlinien für Projekte
Dienstkontoadministrator roles/iam.serviceAccountAdmin Flottenprojekt Authentifizierung als Dienstkonto.
Service Management-Administrator roles/servicemanagement.admin Flottenprojekt Vollständige Kontrolle über Google Service Management-Ressourcen.
Service Usage-Administrator roles/serviceusage.serviceUsageAdmin Flottenprojekt Berechtigung, Dienststatus zu aktivieren, zu deaktivieren und zu prüfen, sowie Kontingente und Abrechnungen für einen Nutzer (Hinweis 1)
CA Service-Administrator Beta roles/privateca.admin Flottenprojekt Vollständiger Zugriff auf alle CA Service-Ressourcen. (Hinweis 2)

Hinweise:

  1. Service Usage Admin: Diese Rolle ist erforderlich. als Voraussetzung zum Aktivieren der mesh.googleapis.com API in folgenden Fällen: für die Erstbereitstellung des verwalteten Cloud Service Mesh.
  2. CA Service Admin: Diese Rolle ist nur erforderlich, wenn Sie in CA Service integriert sind.

Cloud Service Mesh installieren.

Im Folgenden wird beschrieben, wie Sie Cloud 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 mit denen Sie Beispielgateways und Tools wie istioctl finden können. Weitere Informationen finden Sie in der Navigationsleiste rechts, um eine Liste der Beispiele aufzurufen.

  2. 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.

  3. Um die Einrichtung des Cloud Service Mesh abzuschließen, müssen Sie die automatische Sidecar-Injektion und Arbeitslasten neu bereitstellen.

  4. Wenn Sie Cloud Service Mesh auf mehr als einem Cluster installieren, führen Sie den folgenden Befehl aus: asmcli install für jeden Cluster. Achten Sie beim Ausführen von asmcli install darauf, für jeden Cluster dieselbe FLEET_PROJECT_ID zu verwenden. Nachdem Cloud Service Mesh installiert wurde, lesen Sie die Anweisungen zum Multi-Cluster-Mesh einrichten in Verbindung mit Google Cloud.

  5. Wenn sich Ihre Cluster in verschiedenen Netzwerken befinden (wie in Inselmodus übergeben Sie einen eindeutigen Netzwerknamen an asmcli mithilfe der Methode --network_id.

Standardfeatures und Mesh-CA installieren

In diesem Abschnitt wird gezeigt, wie Sie asmcli ausführen, um Cloud Service Mesh mit der unterstützten Standardfunktionen für Ihre Plattform Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle.

Lokal

Führen Sie die folgenden Befehle in Google Distributed Cloud oder Google Distributed Cloud zur Installation der Steuerungsebene mit und Cloud Service Mesh-Zertifizierungsstelle. 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 Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity

Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

AWS

Führen Sie die folgenden Befehle in GKE on AWS aus, um die Steuerungsebene zu installieren mit Standardfunktionen und Cloud Service Mesh-Zertifizierungsstelle. 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 Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity

Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

Azure

Führen Sie die folgenden Befehle in GKE on Azure aus, um Installieren Sie die Steuerungsebene mit Standardfeatures und der Cloud Service Mesh-Zertifizierungsstelle. 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 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 Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity

Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

Amazon EKS

Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Standardfeatures und Cloud Service Mesh-Zertifizierungsstelle. 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 \
      --option attached-cluster \
      --network_id default \
      --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.
    • --option attached-cluster Ändert die Standardsignatur ist.
    • --network_id Wenn Sie ein Multi-Netzwerk-Mesh einrichten, Legen Sie dann --network_id auf einen eindeutigen Wert für jeden Cluster fest. im Mesh-Netzwerk.
    • --ca mesh_ca Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity

Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

Microsoft AKS

Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und Cloud Service Mesh-Zertifizierungsstelle. 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 \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • 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.
    • --option attached-cluster Ändert die Standardsignatur ist.
    • --network_id Wenn Sie ein Multi-Netzwerk-Mesh einrichten, Legen Sie dann --network_id auf einen eindeutigen Wert für jeden Cluster fest. im Mesh-Netzwerk.
    • --ca mesh_ca Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity

Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

Standardfeatures und Certificate Authority (CA) Service installieren

In diesem Abschnitt wird gezeigt, wie Sie asmcli ausführen, um Cloud Service Mesh mit der Standardeinstellung zu installieren unterstützten Funktionen für Ihre Plattform und CA Service als Zertifizierungsstelle aktivieren

<ph type="x-smartling-placeholder">

Zusätzlich zur Cloud Service Mesh-Zertifizierungsstelle können Sie Cloud Service Mesh so konfigurieren, Certificate Authority Service. 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 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 Cloud Service Mesh-Zertifizierungsstelle mit einem benutzerdefinierten Stammverzeichnis Ihres Unternehmens verketten möchten Zertifikat zum Signieren von Arbeitslastzertifikaten.

Die Kosten für die Cloud Service Mesh-Zertifizierungsstelle sind in der Cloud Service Mesh-Preise. Die CA Service ist nicht im Cloud Service Mesh-Basispreis enthalten und ist separat abgerechnet. Außerdem CA Service umfasst eine explizites SLA, die Cloud Service Mesh-Zertifizierungsstelle jedoch nicht.

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 Zertifizierungsstellen zum Signieren Cloud Service Mesh-Arbeitslastzertifikate Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
  3. Wenn nur Zertifikate für Cloud Service Mesh-Arbeitslasten verarbeitet werden sollen, legen Sie Folgendes fest: die folgende Ausstellungsrichtlinie für den Zertifizierungsstellenpool aus:

    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.

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

Führen Sie die folgenden Befehle in Google Distributed Cloud oder Google Distributed Cloud zur Installation der Steuerungsebene mit Standardfeatures und Certificate Authority Service. 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 \
      --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_cas Verwenden Sie Certificate Authority Service als Zertifizierungsstelle. Das Ändern von Zertifizierungsstellen während einer zu Ausfallzeiten führen. asmclikonfiguriert Zu verwendender Certificate Authority Service Flotte Workload Identity
    • --ca_pool Die vollständige Kennung für die CA-Pool des Certificate Authority Service. Wenn Sie eine Zertifikatsvorlage verwenden, hängen Sie die Vorlagen-ID durch : getrennt an. Hier einige Beispiele:
        --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
        

    Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

Standardfeatures mit Istio-CA installieren

In diesem Abschnitt wird Folgendes erläutert:

  • Zertifikate und Schlüssel für die Istio-Zertifizierungsstelle generieren, die Cloud Service Mesh verwendet, um Arbeitslasten signieren.
  • Führen Sie asmcli aus, um Cloud Service Mesh mit Standardfeatures zu installieren und zu aktivieren Istio-Zertifizierungsstelle

Standardmäßig in Umgebungen, in denen Cloud Service Mesh mit Istio-CA-Berichtsmesswerten installiert wird an Prometheus zu senden. Wenn Sie die Cloud Service Mesh-Dashboards verwenden möchten, müssen Sie Stackdriver 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 Cloud Service Mesh-Zertifizierungsstelle verwendet eine Zwischen-CA Signaturschlüssel und Zertifikat, von der Stammzertifizierungsstelle signiert. 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.21.4-asm.5 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 installiert ist, können Sie das Makefile Cloud Service Mesh-Installationsdatei herunterladen und Extrahieren des Inhalts.

  1. Wechseln Sie zum Verzeichnis istio-1.21.4-asm.5.

  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:

    Lokal

    Führen Sie die folgenden Befehle in Google Distributed Cloud oder Google Distributed Cloud zur Installation der Steuerungsebene mit Standardfeatures und Istio-Zertifizierungsstelle. 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 das Steuerelement zu installieren mit Standardfeatures und Istio CA. 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.

    Azure

    Führen Sie die folgenden Befehle in GKE on Azure aus, um die Steuerungsebene mit Standardfeatures und Istio CA 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
      
      • --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 \
        --option attached-cluster \
        --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 \
        --network_id default
      
      • --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.
      • --option attached-cluster Ändert die Standardsignatur ist.
      • -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.
      • --network_id Wenn Sie ein Multi-Netzwerk einrichten Mesh-Netzwerk und legen Sie dann --network_id auf einen eindeutigen Wert für jedes einen Cluster im Mesh-Netzwerk erstellen.

    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 \
        --option attached-cluster \
        --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 \
        --network_id default
      
      • 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.
      • --option attached-cluster Ändert die Standardsignatur ist.
      • -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.
      • --network_id Wenn Sie ein Multi-Netzwerk einrichten Mesh-Netzwerk und legen Sie dann --network_id auf einen eindeutigen Wert für jedes einen Cluster im Mesh-Netzwerk erstellen.

Mit Istio CA mit aktivierter Google Cloud Observability installieren

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

Lokal

Führen Sie die folgenden Befehle in Google Distributed Cloud oder Google Distributed Cloud zur Installation der Steuerungsebene mit Stackdriver und weitere optionale Features und die Istio-Zertifizierungsstelle. 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.

    Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.

AWS

Führen Sie die folgenden Befehle in GKE on AWS aus, um das Steuerelement zu installieren mit Stackdriver und anderen optionalen Features und der Istio-Zertifizierungsstelle. 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.

Azure

Führen Sie die folgenden Befehle in GKE on Azure aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features installieren und Istio-Zertifizierungsstelle Geben Sie Ihre Werte in die angegebenen Platzhalter ein. Sie haben folgende Möglichkeiten: Aktivieren Sie Ingress für das öffentliche oder das private Subnetz.

Ö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 andere optionale Features und die Istio-Zertifizierungsstelle. 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 \
      --option attached-cluster
    
    • --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.
    • --option stackdriver Ändert das Standard-Dienstprogramm für die Signatur um istiod zu haben.

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 \
      --option attached-cluster
    
    • 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.
    • --option stackdriver Ändert das Standard-Dienstprogramm für die Signatur um istiod zu haben.

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 Möglichkeiten, optionale Funktionen zu aktivieren: --option und --custom_overlay.

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

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.

Führen Sie die folgenden Befehle in Google Distributed Cloud aus, Google Distributed Cloud, GKE on AWS, GKE on Azure Amazon EKS oder Microsoft AKS. 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 Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. Beachten Sie, dass asmclikonfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity
    • --custom_overlay: Den Namen der Overlay-Datei angeben.

Gateways installieren

Mit Cloud Service Mesh haben Sie die Möglichkeit, Gateways als Teil Ihres Service Mesh. 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. Die erforderlichen Schritte hängen davon ab, die Sie verwenden möchten, Standard-Injection-Labels (z. B. istio-injection=enabled) oder der Überarbeitungslabel für das Gateway -Namespace auf sie zugegriffen werden. Das Standard-Überarbeitungs-Tag und das Überarbeitungslabel werden vom Sidecar-Injektor-Webhook dazu verwendet, eingefügte Proxys einer bestimmten Überarbeitung der Steuerungsebene zuzuordnen.

    1. Wenn Sie eine Standard-Tag-Überarbeitung verwendet haben, um die automatische Injektion in den Gateway überprüfen, ob das Standard-Tag in dem Verzeichnis vorhanden ist, das Sie in --output_dir angegeben ist und auf die neu installierte Überarbeitung.

      DIR_PATH/istioctl tag list
      
    2. 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 Versionslabel aus, das der Cloud Service Mesh-Version, z. B.: asm-1214-5

    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 den Wert istio.io/rev-Label, das Sie bei Neuinstallationen von Cloud Service Mesh oder neue Bereitstellungen. Weil die automatische Injektion fehlschlägt, wenn ein Namespace enthält sowohl istio.io/rev als auch istio-injection Label, alle kubectl label-Befehle im Cloud Service Mesh in der Dokumentation explizit beide Labels angeben.

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

  3. Laden Sie die YAML-Konfigurationsdatei für das Ingress-Gateway aus der anthos-service-mesh-packages-Repository.

  4. Wenden Sie die YAML-Beispielkonfiguration für das Ingress-Gateway unverändert an oder ändern Sie sie als erforderlich.

    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

Cloud Service Mesh verwendet Sidecar-Proxys, um die Netzwerksicherheit, Zuverlässigkeit Beobachtbarkeit. Beim Cloud Service Mesh werden diese Funktionen vom Primären Container der Anwendung und in einem gemeinsamen Out-of-Process-Proxy implementiert als separater Container im selben Pod bereitgestellt.

Ihre Installation ist erst abgeschlossen, wenn Sie den automatischen Sidecar-Proxy aktivieren und starten Sie die Pods für alle Arbeitslasten neu, in Ihrem Cluster ausgeführt wurden, bevor Sie Cloud Service Mesh installiert haben.

Um die automatische Injektion zu aktivieren, kennzeichnen Sie Ihre Namespaces mit dem Standard-Injection-Labels Das Standard-Tag oder ein Überarbeitungslabel der am istiod bei der Installation von Cloud Service Mesh 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 Folgendes konfigurieren: automatisch eingefügt werden, damit Cloud Service Mesh 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:

    1. Wenn Sie eine Standard-Tag-Überarbeitung verwendet haben, um die automatische Injektion in den Gateway überprüfen, ob das Standard-Tag in dem Verzeichnis vorhanden ist, das Sie in --output_dir angegeben ist und auf die neu installierte Überarbeitung.

      DIR_PATH/istioctl tag list
      
    2. Führen Sie den folgenden Befehl aus: NAMESPACE ist der Name des Namespace, in dem Sie die automatische Injektion aktivieren möchten.

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

    Mit den Standard-Injection-Labels wird die Überarbeitung eingeschleust auf den das Standard-Tag verweist.

    Ü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-1214-5-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1214-5,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1214-5-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1214-5,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-1214-5.

    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 zuvor nicht den Wert istio-injection-Label, das Sie in neuen Cloud Service Mesh-Installationen oder neue Bereitstellungen. Da die automatische Injektion Verhalten ist nicht definiert, wenn ein Namespace sowohl den Parameter istio-injection und das Versionslabel, alle kubectl label-Befehle im In der Cloud Service Mesh-Dokumentation wird explizit sichergestellt, dass nur ein Wert festgelegt ist.

  2. Wenn Arbeitslasten vor der Installation auf dem Cluster ausgeführt wurden Cloud Service Mesh. Starten Sie die Pods neu, um die 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 Produktion können Sie einen Prozess implementieren, Blau/Grün-Bereitstellung sodass Sie Pods sicher neu starten können, um eine Unterbrechung des Traffics zu vermeiden.

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

    kubectl rollout restart deployment -n NAMESPACE
    

Nächste Schritte