Wenn Sie Anthos Service Mesh installieren, unterscheiden sich die Features der Steuerungsebene, die standardmäßig aktiviert sind, 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 in einer Overlay-Datei aktivieren. Dabei haben Sie die Möglichkeit, mehrere Overlays ebenenweise zu platzieren. 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üristioctl 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 imanthos-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 Skriptinstall_asm
übergeben. Beispiele für beide Möglichkeiten finden Sie unterinstall_asm
-Beispiele.
Fügen Sie nicht mehrere CRs in eine YAML-Datei ein. | Separate YAML-Dateien für jede CR erstellen |
---|---|
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.
Installieren Sie
kpt
, falls noch nicht geschehen:gcloud components install kpt
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.8-asm asm
In den folgenden Beispielen wird davon ausgegangen, dass sich das
asm
-Paket in Ihrem aktuellen Arbeitsverzeichnis befindet.
Beispiele
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
.
Alle folgenden Befehle legen ein Revisionslabel für istiod
fest. Für den istiod
-Bereitstellungsnamen wird istiod-asm-186-8
festgelegt. Ein Überarbeitungslabel hat das Format istio.io/rev=asm-186-8
. 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 einem Überarbeitungslabel für istiod
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.
Sie erfahren hier, wie Sie die Umgebungsvariable CTX_CLUSTER1
festlegen und cluster.yaml
konfigurieren. Eine der Einstellungen, die Sie in cluster.yaml
konfigurieren, ist jene für die Überarbeitung. Die Datei egressgateways.yaml
enthält die Konfiguration zum Aktivieren eines optionalen Ausgangsgateways.
Installieren Sie Anthos Service Mesh auf GKE on VMware:
istioctl install --context="${CTX_CLUSTER1}" \ -f cluster.yaml \ -f asm/istio/options/egressgateways.yaml
Kehren Sie zur Installationsanleitung für GKE on VMware zurück, um den validierenden Webhook zu konfigurieren. Dieser ist für neue Installationen erforderlich.
Die Reihenfolge der Dateien in der Befehlszeile spielt eine wichtige Rolle. Geben Sie zuerst die Datei cluster.yaml
an, die die erforderliche Konfiguration für die Standard-Features enthält, gefolgt von den Overlay-Dateien.
Ausgangsgateway in GKE in Google Cloud aktivieren
Wir empfehlen die Verwendung des Skripts install_asm
zum Einrichten eines oder mehrerer Cluster im selben Projekt. Das Skript richtet ein Überarbeitungslabel für istiod
ein.
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.8-asm
ausgeführt haben, um das Anthos Service Mesh 1.8.6 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_all \
--option egressgateways
Mit diesem Befehl wird das Skript für eine neue Installation ausgeführt und Mesh-CA, die Standardzertifizierungsstelle für neue Installationen, aktiviert. Mit dem Flag --enable_all
kann das Skript die erforderlichen Google APIs aktivieren, Berechtigungen zur Identitäts- und Zugriffsverwaltung festlegen und die erforderlichen Aktualisierungen an Ihrem Cluster vornehmen. Dazu gehört die Aktivierung von GKE Workload Identity.
Das Skript ruft aus GitHub die Datei egressgateways.yaml
ab, mit der die Steuerungsebene konfiguriert wird.
Ausgangsgateway für GKE-Cluster in verschiedenen Projekten aktivieren
Derzeit wird vom install_asm
-Skript die Installation von Anthos Service Mesh in Clustern von verschiedenen Projekten nicht unterstützt.
Für die folgenden Befehle der Befehlszeile wird davon ausgegangen, dass Sie alle Schritte unter Installation und Migration mehrerer Projekte bis zu dem Punkt ausgeführt haben, an dem Sie Anthos Service Mesh installieren.
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-186-8
Die folgenden Dateien überlagern die Einstellungen in der Datei
istio-operator.yaml
:Mit der Datei
multiproject.yaml
werden die Standard-Features für ein Mesh mit mehreren Projekten festgelegt. Sie muss vor den anderen Overlay-Dateien angegeben werden.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.
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
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".
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
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
CNI in GKE on VMware aktivieren
Internen Load-Balancer aktivieren
Bei Installationen in GKE können Sie einen internen Load-Balancer für das Istio-Ingress-Gateway aktivieren.
Externe Zertifikatsverwaltung auf dem Ingress-Gateway
Informationen zum Aktivieren der externen Zertifikatsverwaltung auf dem Ingress-Gateway mit Envoy SDS finden Sie unter Sichere Gateways.