Optionale Features auf der Steuerungsebene im Cluster aktivieren

Auf dieser Seite wird beschrieben, wie Sie optionale Features auf einer Steuerungsebene im Cluster aktivieren Informationen zur von Google verwalteten Steuerungsebene finden Sie unter Von Google verwaltete Steuerungsebene konfigurieren.

Wenn Sie Anthos Service Mesh installieren, unterscheiden sich die standardmäßig aktivierten Features je nach Plattform. Sie können optional Features aktivieren und dazu beim Installieren oder beim Upgrade von Anthos Service Mesh eine Overlay-Datei einfügen. Eine Overlay-Datei ist eine YAML-Datei, die eine benutzerdefinierte IstioOperator-Ressource (Custom Resource, CR) enthält, mit der Sie die Steuerungsebene konfigurieren. Sie können die Standardkonfiguration überschreiben und ein optionales Feature aktivieren oder ein Standardfeature in einer Overlay-Datei deaktivieren. Geben Sie pro Overlay-Datei ein Feature an. Sie können mehr Overlays übereinander legen. Jede Overlay-Datei überschreibt die Konfiguration auf den vorherigen Ebenen.

.

Informationen zu Overlay-Dateien

Die Overlay-Dateien auf dieser Seite befinden sich im anthos-service-mesh-Paket in GitHub. Diese Dateien enthalten gängige Anpassungen der Standardkonfiguration. Sie können diese Dateien unverändert anwenden oder weitere Änderungen daran vornehmen.

  • Wenn Sie Anthos Service Mesh mit dem Befehl istioctl install installieren, können Sie mit der Befehlszeilenoption -f eine oder mehrere Overlay-Dateien angeben. Sie haben grundsätzlich die Möglichkeit, die Konfiguration durch Angabe von Konfigurationsparametern in der Befehlszeile mit der Option --set für istioctl install zu ändern. Wir empfehlen aber, eine Overlay-Datei zu verwenden. Diese kann dann zusammen mit Ihren anderen benutzerdefinierten Ressourcendateien in Ihrem Versionsverwaltungssystem gespeichert werden. Sie müssen diese Dateien für das Upgrade von Anthos Service Mesh beibehalten, damit Ihre Steuerungsebene nach dem Upgrade wieder die gleiche Konfiguration hat.

  • Wenn Sie Anthos Service Mesh mit dem von Google bereitgestellten install_asm-Skript installieren, haben Sie die Möglichkeit, eine oder mehrere Overlay-Dateien mit der Option --option oder der Option --custom_overlay anzugeben. Wenn Sie keine Änderungen an den Dateien im anthos-service-mesh-Repository vornehmen müssen, können Sie --option verwenden. Das Skript ruft die Datei von GitHub ab. Sie können aber auch die Overlay-Datei ändern und die Änderungen mit der Option --custom_overlay an das Skript install_asm übergeben.

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

anthos-service-mesh-Paket herunterladen

So laden Sie das anthos-service-mesh-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.9-asm asm
    

    In den folgenden Beispielen wird davon ausgegangen, dass sich das asm-Paket in Ihrem aktuellen Arbeitsverzeichnis befindet.

So aktivieren Sie optionale Features

Um eine Funktion bei der Installation von Anthos Service Mesh zu aktivieren, variiert der genaue Befehl abhängig von Ihrer Plattform und der Verwendung des Skripts install_asm oder des Befehls istioctl install.

Die folgenden Beispiele sind vereinfacht, damit nur die benutzerdefinierten Overlays zur Aktivierung optionaler Features angezeigt werden. Ersetzen Sie OTHER_FLAGS durch die Befehlszeilenoptionen in der Installationsanleitung.

install_asm-Skript verwenden

Das Skript install_asm bietet zwei Möglichkeiten zum Aktivieren einer optionalen Funktion. Welche Methode Sie verwenden, hängt davon ab, ob Sie Änderungen an der Overlay-Datei vornehmen müssen.

  • Verwenden Sie --option, wenn Sie keine Änderungen an der Overlay-Datei vornehmen müssen. Mit --option ruft install_asm die Datei aus dem GitHub-Repository für Sie ab. Dazu benötigen Sie eine Internetverbindung.

    ./install_asm \
      OTHER_FLAGS \
      --option OPTION_NAME
    

    Ersetzen Sie OPTION_NAME durch die Option, die Sie aktivieren möchten. Eine Liste der Optionen finden Sie im Paket anthos-service-mesh.

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

    ./install_asm \
      OTHER_FLAGS \
      --custom_overlay PATH_TO_FILE
    

    Ersetzen Sie PATH_TO_FILE durch den Pfad zur Overlay-Datei, die Sie verwenden möchten.

Mit dem Befehl istioctl install

Sie verwenden den Befehl istioctl install für Installationen mit mehreren Projekten in GKE und für Plattformen, die sich nicht in Google Cloud befinden, z. B. GKE on VMware.

  • Verwenden Sie -f, um die Overlay-Datei einzubeziehen. Dies kann eine Overlay-Datei aus dem anthos-service-mesh-Paket ohne Anpassungen oder eine benutzerdefinierte Overlay-Datei sein.

    istioctl install  \
     OTHER_FLAGS \
     -f PATH_TO_FILE
    

    Ersetzen Sie PATH_TO_FILE durch den Pfad zur Overlay-Datei, die Sie verwenden möchten.

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 aus der IstioOperator-CR 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

Beachten Sie, dass die Tracer-Konfiguration derzeit Teil der Proxy-Bootstrap-Konfiguration ist. Deshalb muss der Pod neu gestartet und wieder eingefügt werden, um die Tracer-Aktualisierung zu übernehmen. Sie können beispielsweise mit dem folgenden Befehl die Pods für ein Deployment neu starten:

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

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.

  1. Netzwerkrichtlinien aktivieren

  2. Wählen Sie die Overlay-Datei aus, die Ihrer Plattform entspricht.

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