Optionale Features aktivieren

Beim Installieren von Anthos Service Mesh geben Sie ein Konfigurationsprofil an. Die Konfigurationsprofile sind YAML-Dateien, mit denen die mit Anthos Service Mesh installierten Features definiert und konfiguriert werden. 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.

Sie können das Konfigurationsprofil überschreiben und die Features Unterstützt optional mithilfe der IstioOperator API aktivieren. Sie geben die IstioOperator-Konfiguration in einer YAML-Datei an, z. B. feature.yaml. Der Name der YAML-Datei spielt keine Rolle.

Sie können die Konfiguration ändern, indem Sie Änderungen im Profil vornehmen oder Konfigurationsparameter in der Befehlszeile mithilfe der Option --set angeben. Wir empfehlen jedoch, eine YAML-Konfigurationsdatei IstioOperator zu verwenden. Dadurch können Sie die Datei zusammen mit Ihren anderen Ressourcenkonfigurationsdateien in Ihrem Versionsverwaltungssystem speichern. Sie können mehrere Dateien in der Befehlszeile angeben, wenn Sie optionale Funktionen aktivieren.

Beispiele

Wenn Sie eine Funktion bei der Installation oder dem Upgrade von Anthos Service Mesh aktivieren möchten, müssen Sie sowohl das Profil als auch die YAML-Datei für das Feature angeben, das Sie aktivieren möchten. Bei diesen Beispielen wird davon ausgegangen, dass Sie alle Schritte im Installations- oder Upgrade-Leitfaden bis zu dem Punkt abgeschlossen haben, an dem Sie Anthos Service Mesh installieren.

Egress-Gateway aktivieren

In diesem Beispiel wird gezeigt, wie Sie ein Gateway für ausgehenden Traffic in GKE on VMware aktivieren.

  1. Kopieren Sie die folgende YAML-Datei nach feature.yaml und speichern Sie die Datei:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        egressGateways:
          - name: istio-egressgateway
            enabled: true
  2. Zum Installieren von Anthos Service Mesh in GKE auf VMware ersetzen Sie in der folgenden Befehlszeile REVISION durch die genaue Anthos Service Mesh-Version, die Sie installieren, z. B.: asm-1614-2

    istioctl install \
      --set profile=asm-multicloud \
      --set revision=REVISION \
      -f feature.yaml

Tracing aktivieren

In diesem Beispiel wird gezeigt, wie Cloud Trace in GKE aktiviert wird.

Für Installationen und Upgrades in GKE müssen Sie die Datei istio-operator.yaml vorbereiten, die Informationen zu Ihrem Projekt und zu Ihrem Cluster enthält. Wenn Sie istio-operator.yaml konfigurieren, legen Sie das zu verwendende Profil fest: asm-gcp oder asm-gcp-multiproject. Da das Profil in istio-operator.yaml konfiguriert ist, müssen Sie in diesem Fall das Profil nicht in der Befehlszeile angeben, auch wenn Sie es aus Gründen der Klarheit angeben möchten.

  1. Kopieren Sie die folgende YAML-Datei nach feature.yaml und speichern Sie die Datei:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        enableTracing: true
      values:
        global:
           proxy:
             tracer: stackdriver
  2. So installieren Sie Anthos Service Mesh in GKE über die folgende Befehlszeile:

    • Ersetzen Sie PROFILE durch das Profil, das Sie verwenden, entweder asm-gcp oder asm-gcp-multiproject.
    • Ersetzen Sie REVISION durch die genaue Anthos Service Mesh-Version, die Sie installieren, z. B. asm-1614-2.
    istioctl install \
     -f asm/cluster/istio-operator.yaml \
     --set profile=PROFILE \
     --set revision=REVISION \
     -f feature.yaml

YAML für optionale Features

Die folgenden Abschnitte enthalten die YAML-Datei, um optionale und unterstützte Funktionen zu aktivieren. Wenn Sie ein optionales Feature aktivieren, müssen Sie für das Feature, das Sie in der Befehlszeile aktivieren möchten, sowohl das Profil als auch die YAML-Datei angeben. Für GKE ist das Profil in istio-operator.yaml konfiguriert.

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 traceSampling-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
  values:
    pilot:
      traceSampling: 100
    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.

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

Fügen Sie für GKE on VMware gke-system zu excludeNamespaces und values.cni.cniBinDir hinzu. ist /opt/cni/bin:

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. Ersetzen Sie im folgenden YAML-Code PROFILE durch das Profil, das Sie verwenden: entweder asm-gcp oder asm-gcp-multiproject.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: PROFILE
  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
              - name: https
                port: 443

Externe Zertifikatsverwaltung auf dem Ingress-Gateway

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