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:Mesh-Telemetrie, womit Daten für die Anthos Service Mesh-Dashboards in der Google Cloud Console bereitgestellt werden
Die übrigen unterstützten Standardfeatures, die auf der Seite Unterstützte Features für das Konfigurationsprofil
asm-gcp
aufgeführt sind
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 Profilasm-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 Profilasm-multicloud.yaml
installieren, werden dadurch die unterstützten Standardfeatures auf der Seite Unterstützte Features für das Konfigurationsprofilasm-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.
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
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.
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
So installieren Sie Anthos Service Mesh in GKE über die folgende Befehlszeile:
- Ersetzen Sie
PROFILE
durch das Profil, das Sie verwenden, entwederasm-gcp
oderasm-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
- Ersetzen Sie
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.