Optionale Features aktivieren

Wenn Sie Anthos Service Mesh installieren, müssen Sie je nach Umgebung entweder ein Konfigurationsprofil oder eine Overlay-Datei angeben, mit der das Profil für Sie festgelegt wird. Die Konfigurationsprofile sind YAML-Dateien, in denen die IstioOperator API verwendet wird. Die Profile definieren und konfigurieren die Features, die mit Anthos Service Mesh installiert werden. Die Anthos Service Mesh-Profile sind Overlays des Profils empty, d. h. keine Einstellungen, oder des Istio-default-Profils. Die folgenden Profile werden mit Anthos Service Mesh bereitgestellt:

  • asm-gcp: Verwenden Sie dieses Profil, wenn sich alle GKE-Cluster in einem Projekt befinden. Wenn Sie Anthos Service Mesh mit diesem Profil installieren, werden die folgenden Features aktiviert:

  • asm-gcp-multiproject: Verwenden Sie dieses Profil, wenn sich Ihr GKE-Cluster in einer freigegebenen Virtual Private Cloud befindet und Sie Cluster aus anderen Projekten zu Anthos Service Mesh hinzufügen möchten. Wenn Sie Anthos Service Mesh mit dem Profil asm-gcp-multiproject installieren, gilt Folgendes:

    • Die Anthos Service Mesh-Dashboards in der Google Cloud Console sind derzeit nicht verfügbar. Sie können sich aber für jedes Projekt Logs in Cloud Logging und Messwerte in Cloud Monitoring ansehen.

    • Die unterstütztes Standardfeatures, die auf der Seite Unterstützte Features für das Konfigurationsprofil asm-gcp-multiproject aufgeführt sind, sind aktiviert.

  • asm-multicloud: Verwenden Sie dieses Profil für Cluster in anderen unterstützten Umgebungen: GKE on VMware, GKE on AWS, Amazon Elastic Kubernetes Service (Amazon EKS) und Microsoft Azure Kubernetes Service (Microsoft AKS). Wenn Sie Anthos Service Mesh mit dem Profil asm-multicloud.yaml installieren, werden dadurch die unterstützten Standardfeatures auf der Seite Unterstützte Features für das Konfigurationsprofil asm-multicloud aktiviert.

Die Profile befinden sich im Unterverzeichnis manifests/profiles des Stammverzeichnisses der Anthos Service Mesh-Installation.

Overlay-Dateien

Eine Overlay-Datei ist eine YAML-Datei, die eine benutzerdefinierte IstioOperator-Ressource (CR) enthält, mit der Sie die Steuerungsebene konfigurieren. Sie können die Standardkonfiguration überschreiben und unterstützte optionale Funktionen in einer Overlay-Datei aktivieren. Sie können mehrere Overlays ebenenweise platzieren. Jede Overlay-Datei überschreibt die Konfiguration auf den vorherigen Ebenen.

Wenn Sie Anthos Service Mesh mit dem Befehl istioctl install installieren oder upgraden, können Sie in der Befehlszeile mit der Befehlszeilenoption -f eine oder mehrere Overlay-Dateien angeben.

Fügen Sie nicht mehrere CRs in eine YAML-Datei ein. Separate YAML-Dateien für jede CR erstellen
Mehrere CRs in einer YAML-Datei Separate YAML-Dateien für jede CR

Sie können die Konfiguration zwar durch Angabe von Konfigurationsparametern in der Befehlszeile ändern und dafür die Option --set für istioctl install verwenden. Wir empfehlen jedoch, eine Overlay-Datei zu verwenden, damit Sie die Datei in Ihrem Versionsverwaltungssystem zusammen mit Ihren anderen Ressourcendefinitionsdateien speichern können. Sie müssen diese Dateien für das Upgrade von Anthos Service Mesh beibehalten, damit Ihr Service Mesh nach dem Upgrade dieselbe Konfiguration hat.

Die Overlay-Dateien auf dieser Seite befinden sich im asm-Paket in GitHub. Diese Dateien enthalten gängige Anpassungen der Profile. Sie können diese Dateien unverändert verwenden oder weitere Änderungen daran vornehmen. Sie können auch Ihre eigenen Overlay-Dateien erstellen, wie unter Konfiguration anpassen beschrieben.

Wenn Sie Anthos Service Mesh mit dem von Google bereitgestellteninstall_asm-Skript installieren, können Sie eine oder mehrere Overlay-Dateien mit der Option --option oder der Option --custom_overlay angeben. Wenn Sie keine Änderungen an den Dateien vornehmen müssen, können Sie --option verwenden. Das Skript ruft dann die Datei von GitHub ab. Andernfalls können Sie Änderungen an der Overlay-Datei vornehmen und sie dann mit der Option --custom_overlay an das Skript install_asm übergeben. Beispiele für die Verwendung beider Optionen finden Sie unter install_asm-Beispiele.

So laden Sie das asm-Paket herunter:

In den folgenden Schritten wird kpt verwendet, um das asm-Paket aus dem GitHub-Repository herunterzuladen. Sie können stattdessen auch git clone verwenden.

  1. Installieren Sie kpt, falls noch nicht geschehen:

    gcloud components install kpt
    
  2. Laden Sie das Paket herunter, das die Dateien enthält:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    

Beispiele

Wenn Sie eine Funktion bei der Installation oder Aktualisierung von Anthos Service Mesh aktivieren möchten, müssen Sie sowohl das Profil als auch die Overlay-Datei angeben, mit der das Profil und die Datei für die Funktion festgelegt werden, die Sie aktivieren möchten. Der genaue Befehl variiert je nach Umgebung und abhängig daon, ob Sie das Skript install_asm oder istioctl install verwenden.

Alle folgenden Befehle legen ein Revisionslabel für istiod fest. Ein Überarbeitungslabel hat das Format istio.io/rev=asm-178-10. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Einfügung für einen Namespace aktivieren möchten, müssen Sie ihn mit einer Überarbeitung versehen, die einer istiod-Bereitstellung entspricht.

Ausgangsgateway für GKE On-Prem aktivieren

In diesem Beispiel wird davon ausgegangen, dass Sie die Schritte im Leitfaden Anthos Service Mesh lokal installieren bis zu dem Punkt ausgeführt haben, an dem Sie Anthos Service Mesh installieren möchten, und dass sich das asm-Paket in Ihrem aktuellen Arbeitsverzeichnis befindet. Die Datei egressgateways.yaml enthält die Konfiguration zum Aktivieren eines Ausgangsgateways.

  1. Installieren Sie Anthos Service Mesh auf GKE on VMware:

    istioctl install \
      --set profile=asm-multicloud \
      -f asm/istio/options/egressgateways.yaml \
      --set revision=asm-178-10
    
  2. Kehren Sie zur Installationsanleitung für GKE on VMware zurück, um den validierenden Webhook zu konfigurieren. Dieser ist für neue Installationen erforderlich.

Ausgangsgateway in GKE in Google Cloud aktivieren

Wir empfehlen, mithilfe des Skripts install_asm eigenständige Cluster oder mehrere Cluster im selben Projekt einzurichten. Das Skript verwendet das Profil asm-gcp und legt für istiod ein Überarbeitungslabel fest. In diesem Beispiel wird davon ausgegangen, dass Sie die Anleitung unter Anthos Service Mesh in GKE installieren zum Herunterladen der Version des Skripts install_asm im Branch release-1.7-asm ausgeführt haben, um das Anthos Service Mesh 1.7.8 zu installieren.

So installieren Sie mit dem install_asm-Skript ein Ausgangsgateway:

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis \
  --option egressgateways

Mit diesem Befehl wird das Skript für eine neue Installation ausgeführt, das Profil asm-gcp festgelegt und Ihr Cluster wird mit den für Anthos Service Mesh erforderlichen Optionen konfiguriert. Außerdem wird Mesh CA (die Standard-Zertifizierungsstelle für neue Installationen) aktiviert und dem Skript ermöglicht, die erforderlichen Google APIs zu aktivieren und das egressgateways.yaml von GitHub abzurufen.

Ausgangsgateway für GKE-Cluster in verschiedenen Projekten aktivieren

Das install_asm-Skript unterstützt derzeit die Installation von Anthos Service Mesh mit dem Profil asm-gcp-multiproject nicht. Dieses Profil ist erforderlich, wenn Sie mehrere Cluster in verschiedenen Projekten für Anthos Service Mesh konfigurieren möchten.

Die folgende Befehlszeile setzt voraus, dass Sie alle Schritte unter Installation und Migration mehrerer Projekte bis zu dem Punkt ausgeführt haben, an dem Sie Anthos Service Mesh installieren, und dass sich das asm-Paket in Ihrem aktuellen Arbeitsverzeichnis befindet.

  1. Installieren Sie Anthos Service Mesh:

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-178-10
    

    Die folgenden Dateien überlagern die Einstellungen in der Datei istio-operator.yaml:

    • Mit der Datei multiproject.yaml wird das Profil asm-gcp-multiproject festgelegt. Da das Profil von dieser Datei festgelegt wird, müssen Sie es vor den anderen Overlay-Dateien angeben.

    • Mit der Datei multicluster.yaml werden die Einstellungen konfiguriert, die Anthos Service Mesh für eine Konfiguration mit mehreren Clustern benötigt.

    • Mit der Datei egressgateways.yaml wird das Ausgangsgateway konfiguriert.

  2. Gehen Sie zurück zum Installationsleitfaden für mehrere Projekte, um den Validierungs-Webhook zu konfigurieren, der für neue Installationen erforderlich ist.

YAML für optionale Features

Die folgenden Abschnitte enthalten die YAML-Datei, um optionale und unterstützte Funktionen zu aktivieren.

mTLS-STRICT-Modus

Die Konfiguration global.mtls.enabled wurde entfernt, um Probleme mit Upgrades zu vermeiden und eine flexiblere Installation zu ermöglichen. Konfigurieren Sie zum Aktivieren von STRICT mTLS stattdessen eine Peer-Authentifizierungsrichtlinie.

Envoy an stdout weiterleiten

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

Weitere Informationen finden Sie unter Zugriffs-Logging von Envoy aktivieren.

Cloud Trace

Für Installationen in GKE können Sie Cloud Trace aktivieren. Ausführliche Preisinformationen finden Sie auf der Seite "Cloud Trace – Preise".

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
      proxy:
        tracer: stackdriver

Die Standardabtastrate beträgt 1 %. Sie können den Standardwert aber durch Angabe eines tracing.sampling-Werts überschreiben. Der Wert muss zwischen 0,0 und 100,0 mit einer Genauigkeit von 0,01 liegen. Wenn Sie beispielsweise fünf Anfragen pro 10.000 Anfragen verfolgen möchten, verwenden Sie 0,05.

Das folgende Beispiel zeigt eine Abtastrate von 100 % (nur für Demozwecke oder zur Fehlerbehebung).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Weitergabe von Trace-Kontext

Auch wenn die Sidecar-Proxys automatisch Trace-Spans senden können, benötigen sie einige Hinweise, um den gesamten Trace zu verknüpfen. Anwendungen müssen die entsprechenden HTTP-Header weiterleiten, sodass die Spans einem einzigen Trace korrekt zugeordnet werden können, wenn die Proxys die Spaninformationen senden.

Dazu muss eine Anwendung die folgenden Header aus der eingehenden Anfrage erfassen und an alle ausgehenden Anfragen weiterleiten:

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • x-ot-span-context
  • x-cloud-trace-context
  • traceparent
  • grpc-trace-bin

Beispiele für die Weitergabe der Header finden Sie unter Weitergabe von Trace-Kontext.

Trace von einem Client mit benutzerdefinierter ID erstellen

Verwenden Sie zum Erstellen eines Trace von einem Client mit einer benutzerdefinierten ID den Befehl curl, um eine Anfrage mit einem externen Client zu erstellen und die Anzeige eines Trace zu erzwingen. Beispiel:

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Weitere Informationen zu x-client-trace-id finden Sie in der Envoy-Dokumentation.

Ausgehender Traffic über Egress-Gateways

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
    - name: istio-egressgateway
      enabled: true

Weitere Informationen finden Sie unter Egress-Gateways.

Container-Netzwerkschnittstelle von Istio

Wie Sie die Container-Netzwerkschnittstelle (CNI) von Istio aktivieren, hängt von der Umgebung ab, in der Anthos Service Mesh installiert ist. Außerdem müssen Sie eine Netzwerkrichtlinie aktivieren.

CNI in GKE aktivieren

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
      - istio-system
      - kube-system

CNI in GKE on VMware aktivieren

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
      - istio-system
      - kube-system
      - gke-system

Internen Load-Balancer aktivieren

Bei Installationen in GKE können Sie einen internen Load-Balancer für das Istio-Ingress-Gateway aktivieren.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        serviceAnnotations:
          cloud.google.com/load-balancer-type: "internal"
        service:
          ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Externe Zertifikatsverwaltung auf dem Ingress-Gateway

Informationen zum Aktivieren der externen Zertifikatsverwaltung auf dem Ingress-Gateway mit Envoy SDS finden Sie unter Sichere Gateways.