Cloud Service Mesh für Kubernetes-Arbeitslasten außerhalb von Google Cloud installieren
Auf dieser Seite wird beschrieben, wie Sie ein nicht verwaltetes Cloud Service Mesh für Kubernetes-Arbeitslasten außerhalb von Google Cloud installieren:
- Führen Sie
asmcli
aus, um das Cloud Service Mesh neu zu installieren 1.22.5-asm.1. - Stellen Sie optional ein Ingress-Gateway bereit.
- Ihre Arbeitslasten bereitstellen oder noch einmal bereitstellen, um Sidecar-Proxys einzufügen
Wenn Sie nicht verwaltetes, clusterinternes Cloud Service Mesh mit einer istiod
-Steuerungsebene in GKE installieren möchten, lesen Sie den Hilfeartikel Clusterinternes Cloud Service Mesh in Google Cloud installieren. Beachten Sie, dass für Kubernetes-Arbeitslasten
Google Cloud empfehlen wir
Bereitstellung einer verwalteten Steuerungsebene
Eine Anleitung zum Vorbereiten einer Offlineinstallation von Cloud Service Mesh finden Sie unter Offlineinstallation von Cloud Service Mesh vorbereiten. Sie müssen die Optionen --offline
und --output_dir
angeben, wenn Sie asmcli install
ausführen.
Beschränkungen
Beachten Sie die folgenden Beschränkungen:
Alle Cloud Service Mesh-Cluster für ein Mesh-Netzwerk müssen im selben Netzwerk registriert sein. um Cloud Service Mesh zu nutzen. Andere Cluster im Projekt eines Cloud Service Mesh-Clusters dürfen nicht in einer anderen Flotte registriert sein.
Das
asmcli
-Tool muss Zugriff auf den Google Kubernetes Engine-Endpunkt (GKE) haben. Sie können den Zugriff über einen Jumpserver konfigurieren, z. B. eine Compute Engine-VM innerhalb der Virtual Private Cloud (VPC), die bestimmten Zugriff gewährt.
Hinweise
Folgende Voraussetzungen müssen Sie erfüllt haben:
- Prüfen Sie die Voraussetzungen.
- Lesen Sie die Informationen unter Installation planen.
- Installieren Sie die erforderlichen Tools.
- Laden Sie
asmcli
herunter. - Erteilen Sie Clusteradministratorberechtigungen.
- Validieren Sie Projekt und Cluster.
Zum Installieren von Cloud Service Mesh im Cluster erforderliche Rollen
In der folgenden Tabelle werden die Rollen beschrieben, die für die Installation im Cluster erforderlich sind Cloud Service Mesh.
Rollenname | Rollen-ID | Standort erteilen | Beschreibung |
---|---|---|---|
GKE-Hub-Administrator | roles/gkehub.admin | Flottenprojekt | Vollständiger Zugriff auf GKE-Hubs und zugehörige Ressourcen. |
Kubernetes Engine-Administrator | roles/container.admin | Clusterprojekt. Beachten Sie, dass diese Rolle sowohl für Flotten- als auch für Clusterprojekte für projektübergreifende Bindungen gewährt werden muss. | Berechtigung zur vollständigen Verwaltung von Container-Clustern und den zugehörigen Kubernetes API-Objekten |
Mesh-Konfigurationsadministrator | roles/meshconfig.admin | Flotten- und Clusterprojekt | Gewährt Berechtigungen zum Initialisieren verwalteter Komponenten von Cloud Service Mesh wie eine verwaltete Steuerungsebene und Back-End-Berechtigung, die können Arbeitslasten mit Stackdriver kommunizieren, einzeln autorisiert (sowohl für verwaltete als auch clusterinterne Steuerungsebenen). |
Projekt-IAM-Administrator | roles/resourcemanager.projectIamAdmin | Clusterprojekt | Berechtigung zum Verwalten von Cloud IAM-Richtlinien für Projekte |
Dienstkontoadministrator | roles/iam.serviceAccountAdmin | Flottenprojekt | Authentifizierung als Dienstkonto. |
Service Management-Administrator | roles/servicemanagement.admin | Flottenprojekt | Vollständige Kontrolle über Google Service Management-Ressourcen. |
Service Usage-Administrator | roles/serviceusage.serviceUsageAdmin | Flottenprojekt | Erlaubnis, Dienststatus zu aktivieren, zu deaktivieren und zu überprüfen, Vorgänge zu überprüfen, sowie Kontingent und Abrechnung für ein Nutzerprojekt zu verarbeiten.(Hinweis 1) |
CA Service-Administrator Beta | roles/privateca.admin | Flottenprojekt | Vollständiger Zugriff auf alle CA Service-Ressourcen. (Hinweis 2) |
Hinweise:
- Service Usage-Administrator: Diese Rolle ist erforderlich, um die
mesh.googleapis.com
API zu aktivieren, wenn Sie ein verwaltetes Cloud Service Mesh zum ersten Mal bereitstellen. - CA-Dienstadministrator: Diese Rolle ist nur erforderlich, wenn Sie eine Einbindung in den CA-Dienst vornehmen.
Cloud Service Mesh installieren.
Im Folgenden wird beschrieben, wie Sie Cloud Service Mesh installieren:
Führen Sie
asmcli install
aus, um die clusterinterne Steuerungsebene in einem einzelnen Cluster zu installieren. In den folgenden Abschnitten finden Sie Beispiele für Befehlszeilen. Die Beispiele enthalten sowohl erforderliche Argumente als auch optionale Argumente, die für Sie nützlich sein könnten. Wir empfehlen, immer das Argumentoutput_dir
anzugeben, damit mit denen Sie Beispielgateways und Tools wieistioctl
finden können. In der Navigationsleiste auf der rechten Seite finden Sie eine Liste der Beispiele.Optional können Sie ein Ingress-Gateway installieren. Standardmäßig installiert
asmcli
nicht dasistio-ingressgateway
. Wir empfehlen, die Steuerungsebene und die Gateways separat bereitzustellen und zu verwalten. Wenn Sie das standardmäßigeistio-ingressgateway
für die clusterinterne Steuerungsebene installieren möchten, fügen Sie das Argument--option legacy-default-ingressgateway
ein.Damit die Einrichtung von Cloud Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.
Wenn Sie Cloud Service Mesh auf mehr als einem Cluster installieren, führen Sie den folgenden Befehl aus:
asmcli install
für jeden Cluster. Achten Sie beim Ausführen vonasmcli install
darauf, für jeden Cluster dieselbeFLEET_PROJECT_ID
zu verwenden. Nachdem Cloud Service Mesh installiert ist, lesen Sie die Anweisungen zum Einrichten eines Multi-Cluster-Meshs außerhalb von Google Cloud.Wenn sich Ihre Cluster in verschiedenen Netzwerken befinden (wie in Inselmodus übergeben Sie einen eindeutigen Netzwerknamen an
asmcli
mithilfe der Methode--network_id
.
Standardfeatures und Mesh-CA installieren
In diesem Abschnitt wird gezeigt, wie Sie asmcli
ausführen, um Cloud Service Mesh mit der
unterstützten Standardfunktionen für Ihre Plattform
Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle.
Lokal
Führen Sie die folgenden Befehle in Google Distributed Cloud (nur Software) für VMware oder Google Distributed Cloud (nur Software) für Bare Metal, um die Steuerungsebene mit Standardeinstellungen zu installieren und Cloud Service Mesh-Zertifizierungsstelle. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--ca mesh_ca
Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle.asmcli
konfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity
Wenn Sie SLOs und Infrastrukturmesswerte in der Cloud Service Mesh-UI aufrufen möchten, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.
AWS
Führen Sie die folgenden Befehle in GKE in AWS aus, um die Steuerungsebene mit Standardfeatures und der Cloud Service Mesh-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--ca mesh_ca
Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle verwenden.asmcli
konfiguriert die Cloud Service Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte.
Wenn Sie SLOs und Infrastrukturmesswerte in der Cloud Service Mesh-UI aufrufen möchten, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.
Azure
Führen Sie die folgenden Befehle in GKE on Azure aus, um Installieren Sie die Steuerungsebene mit Standardfeatures und der Cloud Service Mesh-Zertifizierungsstelle. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--ca mesh_ca
Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle verwenden.asmcli
konfiguriert die Cloud Service Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte.
Wenn Sie SLOs und Infrastrukturmesswerte in der Cloud Service Mesh-UI aufrufen möchten, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.
Amazon EKS
Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Standardfeatures und Cloud Service Mesh-Zertifizierungsstelle. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--option attached-cluster
Ändert die Standardsignatur ist das Dienstprogramm.--network_id
Wenn Sie ein Multi-Netzwerk-Mesh einrichten, legen Sie für jeden Cluster im Mesh einen eindeutigen Wert für--network_id
fest.--ca mesh_ca
Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle verwenden.asmcli
konfiguriert die Cloud Service Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte.
Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.
Microsoft AKS
Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und der Cloud Service Mesh-Zertifizierungsstelle zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus.HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Ermöglicht die Registrierung bei GKE Hub.--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--option attached-cluster
Ändert die Standardsignatur ist das Dienstprogramm.--network_id
Wenn Sie ein Multi-Netzwerk-Mesh einrichten, Legen Sie dann--network_id
auf einen eindeutigen Wert für jeden Cluster fest. im Mesh-Netzwerk.--ca mesh_ca
Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle verwenden.asmcli
konfiguriert die Cloud Service Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte.
Zum Anzeigen von SLOs und Infrastrukturmesswerten in der Cloud Service Mesh-UI müssen Sie die ersten drei Schritte im Logging und Monitoring für Anwendungen aktivieren Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und werden im Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU-Ressourcen angezeigt. und Arbeitsspeichermesswerte.
Standardfeatures und Certificate Authority (CA) Service installieren
In diesem Abschnitt wird gezeigt, wie Sie asmcli
ausführen, um Cloud Service Mesh mit der Standardeinstellung zu installieren
unterstützten Funktionen für Ihre Plattform und
CA Service als Zertifizierungsstelle aktivieren
Neben der Cloud Service Mesh-Zertifizierungsstelle können Sie Cloud Service Mesh auch für die Verwendung des Certificate Authority Service konfigurieren. Dieser Leitfaden bietet eine Möglichkeit zur Integration in CA Service, die für die folgenden Anwendungsfälle empfohlen wird:
- Wenn Sie unterschiedliche CAs benötigen, um Arbeitslastzertifikate auf unterschiedlichen Clustern zu signieren.
- Wenn Sie Ihre Signaturschlüssel in einem verwalteten HSM sichern müssen.
- Wenn Sie in einer stark regulierten Branche tätig sind und der Compliance unterliegen.
- Wenn Sie Ihre Cloud Service Mesh-Zertifizierungsstelle mit einem benutzerdefinierten Unternehmensstammzertifikat verketten möchten, um Arbeitslastzertifikate zu signieren.
Die Kosten für die Cloud Service Mesh-Zertifizierungsstelle sind im Preis für Cloud Service Mesh inbegriffen. Die CA Service ist nicht im Cloud Service Mesh-Basispreis enthalten und ist separat abgerechnet. Außerdem CA Service umfasst eine explizites SLA, die Cloud Service Mesh-Zertifizierungsstelle jedoch nicht.
CA Service konfigurieren
- Achten Sie darauf, dass sich der CA-Pool in der Stufe
DevOps
und in derselben Region wie der Cluster befindet, den er bedient, um übermäßige Latenzprobleme oder potenzielle regionenübergreifende Ausfälle zu vermeiden. Weitere Informationen finden Sie unter Arbeitslastoptimierte Stufen. - Erstellen Sie den CA-Pool, um mindestens eine aktive Zertifizierungsstelle in diesem CA-Pool zu erhalten, die sich im selben Projekt wie der GKE-Cluster befindet. Verwenden Sie untergeordnete Zertifizierungsstellen zum Signieren Cloud Service Mesh-Arbeitslastzertifikate Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
Wenn nur Zertifikate für Cloud Service Mesh-Arbeitslasten signiert werden sollen, richten Sie die folgende Ausstellungsrichtlinie für den CA-Pool ein:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
Mit dem folgenden Befehl können Sie die Ausstellungsrichtlinie des CA-Pools aktualisieren:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Informationen zum Festlegen einer Richtlinie für einen Pool finden Sie unter Zertifikatsausstellungsrichtlinie verwenden.
Wenn Sie eine Zertifikatsvorlage verwenden, konfigurieren Sie diese jetzt. Weitere Informationen finden Sie im CA Service-Leitfaden für Workload Identity-Zertifikate. Die Zertifikatvorlage muss in derselben Region wie der CA-Pool erstellt werden. Wenn es mehrere Regionen für CA-Pools gibt, erstellen Sie eine Zertifikatvorlage pro Region.
Cloud Service Mesh für die Verwendung von CA Service konfigurieren
Führen Sie die folgenden Befehle in der Google Distributed Cloud (nur Software) für VMware oder der Google Distributed Cloud (nur Software) für Bare Metal aus, um die Steuerungsebene mit Standardfeatures und Certificate Authority Service zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--ca gcp_cas
Verwenden Sie Certificate Authority Service als Zertifizierungsstelle. Das Ändern von Zertifizierungsstellen während eines Upgrades führt zu Ausfallzeiten.asmcli
konfiguriert den Zertifizierungsstellendienst für die Verwendung der Workload Identity der Flotte.--ca_pool
Die vollständige Kennung für den CA-Pool des Certificate Authority Service. Wenn Sie eine Zertifikatsvorlage verwenden, hängen Sie die Vorlagen-ID durch:
getrennt an. Beispiel:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
Wenn Sie SLOs und Infrastrukturmesswerte in der Cloud Service Mesh-UI aufrufen möchten, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.
Standardfeatures mit Istio-CA installieren
In diesem Abschnitt wird Folgendes erläutert:
- Zertifikate und Schlüssel für die Istio-Zertifizierungsstelle generieren, die Cloud Service Mesh verwendet, um Arbeitslasten signieren.
asmcli
ausführen, um Cloud Service Mesh mit Standardfeatures zu installieren und Istio-CA zu aktivieren
Standardmäßig in Umgebungen, in denen Cloud Service Mesh mit Istio-CA-Berichtsmesswerten installiert wird an Prometheus zu senden. Wenn Sie die Cloud Service Mesh-Dashboards verwenden möchten, müssen Sie Stackdriver aktivieren. Weitere Informationen finden Sie unter Mit optionalen Funktionen installieren.
Für eine optimale Sicherheit empfehlen wir dringend, eine Offline-Stamm-CA zu behalten und die untergeordneten Zertifizierungsstellen einzusetzen, um für jeden Cluster Zertifikate auszugeben. Weitere Informationen finden Sie unter CA-Zertifikate anschließen. In dieser Konfiguration verwenden alle Arbeitslasten im Service Mesh dieselbe Stammzertifizierungsstelle (Certificate Authority, CA). Jede Cloud Service Mesh-Zertifizierungsstelle verwendet eine Zwischenzertifizierungsstelle Signaturschlüssel und Zertifikat, von der Stammzertifizierungsstelle signiert. Wenn es in einem Mesh mehrere CAs gibt, wird eine Hierarchie des Vertrauens zwischen den CAs eingerichtet. Sie können diese Schritte wiederholen, um Zertifikate und Schlüssel für eine beliebige Anzahl von Zertifizierungsstellen bereitzustellen.
Das Makefile zum Generieren der Zertifikate befindet sich im Unterverzeichnis istio-1.22.5-asm.1
im Verzeichnis --output_dir
, das Sie im Befehl asmcli validate
angegeben haben. Wenn Sie asmcli validate
nicht ausgeführt haben oder das heruntergeladene Verzeichnis nicht lokal haben, können Sie das Makefile erhalten, indem Sie die Cloud Service Mesh-Installationsdatei herunterladen und den Inhalt extrahieren.
Wechseln Sie zum Verzeichnis
istio-1.22.5-asm.1
.Erstellen Sie ein Verzeichnis für die Zertifikate und Schlüssel:
mkdir -p certs && \ pushd certs
Generieren Sie ein Root-Zertifikat und einen Root-Schlüssel:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Dadurch werden diese Dateien generiert:
- root-cert.pem: Root-Zertifikat
- root-key.pem: Root-Schlüssel
- root-ca.conf: Konfiguration für openssl, um das Root-Zertifikat zu generieren
- root-cert.csr: CSR für das Root-Zertifikat
Generieren Sie ein Zwischenzertifikat und einen Zwischenschlüssel:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Dadurch werden diese Dateien in einem Verzeichnis namens
cluster1
generiert:- ca-cert.pem: Zwischenzertifikate
- ca-key.pem: Zwischenschlüssel
- cert-chain.pem: Die von
istiod
verwendete Zertifikatskette - root-cert.pem: Root-Zertifikat
Wenn Sie diese Schritte mit einem Offline-Computer ausführen, kopieren Sie das generierte Verzeichnis auf einen Computer mit Zugriff auf die Cluster.
Kehren Sie zum vorherigen Verzeichnis zurück:
popd
Führen Sie
asmcli
aus, um ein Mesh-Netzwerk mit Istio-CA zu installieren:Lokal
Führen Sie die folgenden Befehle in Google Distributed Cloud (nur Software) für VMware oder Google Distributed Cloud (nur Software) für Bare Metal, um die Steuerungsebene mit Standardfeatures und Istio-Zertifizierungsstelle. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.
AWS
Führen Sie die folgenden Befehle in GKE on AWS aus, um das Steuerelement zu installieren mit Standardfeatures und Istio CA. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein. Sie können Ingress für das öffentliche oder das private Subnetz aktivieren.
Öffentlich
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.
Privat
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--custom_overlay
: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.
Azure
Führen Sie die folgenden Befehle in GKE on Azure aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein. Sie können Ingress für das öffentliche oder das private Subnetz aktivieren.
Öffentlich
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.
Privat
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--custom_overlay
: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.
Amazon EKS
Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--option attached-cluster
Ändert die Standardsignatur ist das Dienstprogramm.-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.--network_id
Wenn Sie ein Multi-Netzwerk einrichten Mesh-Netzwerk und legen Sie dann--network_id
auf einen eindeutigen Wert für jedes einen Cluster im Mesh-Netzwerk erstellen.
Microsoft AKS
Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus.HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Ermöglicht die Registrierung bei GKE Hub.--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--option attached-cluster
Ändert die Standardsignatur ist das Dienstprogramm.-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.--network_id
Wenn Sie ein Mesh-Netzwerk mit mehreren Netzwerken einrichten, legen Sie für jeden Cluster im Mesh einen eindeutigen Wert für--network_id
fest.
Mit Istio CA mit aktivierter Google Cloud Observability installieren
Wenn Sie Cloud Service Mesh-Dashboards verwenden möchten, müssen Sie Stackdriver aktivieren.
Lokal
Führen Sie die folgenden Befehle in der Google Distributed Cloud (nur Software) für VMware oder in der Google Distributed Cloud (nur Software) für Bare Metal aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren.
Wenn Sie SLOs und Infrastrukturmesswerte in der Cloud Service Mesh-UI aufrufen möchten, müssen Sie auch die ersten drei Schritte unter Logging und Monitoring für Anwendungen aktivieren ausführen. Wenn Logging und Monitoring nicht aktiviert sind und keine benutzerdefinierten Logs und Messwerte erhalten, zeigt das Cloud Service Mesh-Dashboard keine SLOs, Fehlerlogs oder CPU- und Speichermesswerte an.
AWS
Führen Sie die folgenden Befehle in GKE auf AWS aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein. Sie können Ingress für das öffentliche oder das private Subnetz aktivieren.
Öffentlich
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren.
Privat
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--custom_overlay
: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren. Alternativ können Sie Stackdriver mit--custom_overlay stackdriver.yaml
aktivieren. Sie müssen entweder anthos-service-mesh-package herunterladen oderstackdriver.yaml
aus dem bereitgestellten Manifest erstellen.
Azure
Führen Sie die folgenden Befehle in GKE on Azure aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features installieren und Istio-Zertifizierungsstelle Geben Sie Ihre Werte in die angegebenen Platzhalter ein. Sie haben folgende Möglichkeiten: Aktivieren Sie Ingress für das öffentliche oder das private Subnetz.
Öffentlich
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren.
Privat
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Speichern Sie die folgende YAML-Datei in einer Datei mit dem Namen
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
Zertifikatskette.--custom_overlay
: der Name der erstellten Overlay-Datei Weitere Informationen zu Overlay-Dateien finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren. Alternativ können Sie Stackdriver mit--custom_overlay stackdriver.yaml
aktivieren. Sie müssen entweder anthos-service-mesh-package herunterladen oderstackdriver.yaml
aus dem bereitgestellten Manifest erstellen.
Amazon EKS
Führen Sie die folgenden Befehle in Amazon EKS aus, um die Steuerungsebene mit Stackdriver und anderen optionalen Features und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus../asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren.--option stackdriver
Ändert das Standardsignatur-Dienstprogramm inistiod
.
Microsoft AKS
Führen Sie die folgenden Befehle in Microsoft AKS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus.HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Ermöglicht die Registrierung bei GKE Hub.--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
-ca citadel
: Verwenden Sie Istio-CA als Zertifizierungsstelle.--ca_cert
: Zwischenzertifikat.--ca_key
: Schlüssel für das Zwischenzertifikat.--root_cert
: Root-Zertifikat.--cert_chain
: Zertifikatskette.--option stackdriver
Aktiviert Stackdriver. Sie können auch Stackdriver und Prometheus mit--option prometheus-and-stackdriver
aktivieren.--option stackdriver
Ändert das Standard-Dienstprogramm für die Signatur umistiod
zu haben.
Mit optionalen Features installieren
Eine Overlay-Datei ist eine YAML-Datei mit einer benutzerdefinierten IstioOperator
-Ressource, die Sie an asmcli
übergeben, um die Steuerungsebene zu konfigurieren. Sie können die Standardkonfiguration der Steuerungsebene überschreiben und eine optionale Funktion aktivieren, indem Sie die YAML-Datei an asmcli
übergeben. Sie können mehr Overlays übereinander legen. Jede Overlay-Datei überschreibt die Konfiguration auf den vorherigen Ebenen. Als Best Practice empfehlen wir, dass Sie die Overlay-Dateien in Ihrem Versionsverwaltungssystem speichern.
Es gibt zwei Möglichkeiten, optionale Funktionen zu aktivieren:
--option
und
--custom_overlay
Verwenden Sie --option
, wenn Sie die Overlay-Datei nicht ändern müssen. Mit dieser Methode wird asmcli
die Datei aus dem
GitHub-Repository
für Sie.
Verwenden Sie --custom_overlay
, wenn Sie die Overlay-Datei anpassen müssen.
Weitere Informationen finden Sie unter Optionale Funktionen auf der Steuerungsebene im Cluster aktivieren.
Führen Sie die folgenden Befehle in der Google Distributed Cloud (nur Software) für VMware, der Google Distributed Cloud (nur Software) für Bare Metal, GKE on AWS, GKE on Azure, Amazon EKS oder Microsoft AKS aus. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.
Legen Sie Ihren Nutzercluster als aktuellen Kontext fest:
kubectl config use-context CLUSTER_NAME
Führen Sie
asmcli install
aus, um die Steuerungsebene mit einem optionalen Feature zu installieren. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie--custom_overlay
und den Dateinamen ein. Beispiel:--custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier nicht. Darüber hinaus funktionieren relativekubeconfig
-Dateispeicherorte, die „~“ verwenden, nicht.--output_dir
: Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in dasasmcli
das Paketanthos-service-mesh
herunterlädt und in dem die Installationsdatei extrahiert wird, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädtasmcli
die Dateien in eintmp
-Verzeichnis herunter. Sie können entweder einen relativen Pfad oder einen vollständigen Pfad angeben. Die Umgebungsvariable$PWD
funktioniert hier nicht.--platform multicloud
Gibt an, dass es sich bei der Plattform um etwas anderes als Google Cloud handelt, z. B. eine lokale oder Multi-Cloud-Plattform.-
--enable_all
: Ermöglicht dem Skript Folgendes:- Erforderliche IAM-Berechtigungen gewähren.
- Erforderliche Google APIs aktivieren.
- Im Cluster ein Label festlegen, das das Mesh-Netzwerk identifiziert.
- Cluster bei der Flotte registrieren, falls noch nicht geschehen.
--ca mesh_ca
Verwenden Sie die Cloud Service Mesh-Zertifizierungsstelle als Zertifizierungsstelle. Beachten Sie, dassasmcli
konfiguriert Zu verwendende Cloud Service Mesh-Zertifizierungsstelle Flotte Workload Identity--custom_overlay
: Den Namen der Overlay-Datei angeben.
Gateways installieren
Mit Cloud Service Mesh haben Sie die Möglichkeit, Gateways als Teil Ihres Service Mesh. Ein Gateway beschreibt einen Load-Balancer, der am Rand des Mesh-Netzwerks arbeitet und eingehende oder ausgehende HTTP/TCP-Verbindungen empfängt. Gateways sind Envoy-Proxys, die Ihnen eine detaillierte Kontrolle über den in das Mesh-Netzwerk eingehenden und ausgehenden Traffic ermöglichen.
Erstellen Sie einen Namespace für das Ingress-Gateway, falls Sie noch keinen haben. Gateways sind Nutzerarbeitslasten und sollten als Best Practice nicht im Namespace der Steuerungsebene bereitgestellt werden. Ersetzen Sie
GATEWAY_NAMESPACE
durch den Namen Ihres Namespace.kubectl create namespace GATEWAY_NAMESPACE
Erwartete Ausgabe:
namespace/GATEWAY_NAMESPACE created
Aktivieren Sie die automatische Einfügung auf dem Gateway. Die erforderlichen Schritte hängen davon ab, die Sie verwenden möchten, Standard-Injection-Labels (z. B.
istio-injection=enabled
) oder der Überarbeitungslabel für das Gateway -Namespace auf sie zugegriffen werden. Das Standard-Überarbeitungs-Tag und das Überarbeitungslabel werden vom Sidecar-Injektor-Webhook dazu verwendet, eingefügte Proxys einer bestimmten Überarbeitung der Steuerungsebene zuzuordnen.Standard (empfohlen)
Wenn Sie eine Standard-Tag-Überarbeitung verwendet haben, um die automatische Injektion auf dem Gateway zu aktivieren, prüfen Sie, ob das Standard-Tag in dem von Ihnen in
--output_dir
angegebenen Verzeichnis vorhanden ist und auf die neu installierte Überarbeitung verweist.DIR_PATH/istioctl tag list
Wenden Sie die Standard-Injektionslabels auf den Namespace an.
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
Überarbeitungslabel
Verwenden Sie den folgenden Befehl, um das Überarbeitungslabel für
istiod
zu finden:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
Der Befehl gibt das Überarbeitungslabel aus, das der Cloud Service Mesh-Version entspricht, z. B.
asm-1225-1
.Wenden Sie das Überarbeitungslabel auf den Namespace an. Im folgenden Befehl ist
REVISION
der Wert des Überarbeitungslabelsistiod
, den Sie im vorherigen Schritt notiert haben.kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwrite
Erwartete Ausgabe:
namespace/GATEWAY_NAMESPACE labeled
Sie können die Nachricht
"istio.io/rev" not found
in der Ausgabe ignorieren. Das bedeutet, dass der Namespace bisher nicht das Labelistio.io/rev
hatte, was bei Neuinstallationen von Cloud Service Mesh oder neuen Bereitstellungen zu erwarten wäre. Da die automatische Injektion fehlschlägt, wenn ein Namespace sowohl das Labelistio.io/rev
als auch das Labelistio-injection
enthält, werden in allenkubectl label
-Befehlen in der Cloud Service Mesh-Dokumentation beide Labels explizit angegeben.Wenn der Gateway-Namespace nicht mit einem Label versehen ist, werden die
istio-ingressgateway
-Pods schlägt mit dem FehlerImagePullBackOff
fehl, wenn das Gateway versucht, und dasauto
-Image. Dieses Bild sollte durch den Webhook ersetzt werden.Laden Sie die Beispiel-YAML-Konfigurationsdatei für das Ingress-Gateway aus dem Repository
anthos-service-mesh-packages
herunter.Wenden Sie die YAML-Beispielkonfiguration für das Ingress-Gateway unverändert an oder ändern Sie sie als erforderlich.
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgateway
Erwartete Ausgabe:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
Arbeitslasten bereitstellen und neu bereitstellen
Cloud Service Mesh verwendet Sidecar-Proxys, um die Sicherheit, Zuverlässigkeit und Beobachtbarkeit von Netzwerken zu verbessern. Mit Cloud Service Mesh werden diese Funktionen vom primären Container der Anwendung abstrahiert und in einem gemeinsamen Out-of-Process-Proxy implementiert, der als separater Container im selben Pod bereitgestellt wird.
Ihre Installation ist erst abgeschlossen, wenn Sie den automatischen Sidecar-Proxy aktivieren und starten Sie die Pods für alle Arbeitslasten neu, in Ihrem Cluster ausgeführt wurden, bevor Sie Cloud Service Mesh installiert haben.
Um die automatische Injektion zu aktivieren, kennzeichnen Sie Ihre Namespaces mit dem
Standard-Injection-Labels
Das Standard-Tag oder ein Überarbeitungslabel
die am istiod
bei der Installation von Cloud Service Mesh festgelegt wurde. Das Standard-Überarbeitungs-Tag und das Überarbeitungslabel werden vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars einer istiod
-Überarbeitung zuzuordnen. Nachdem Sie das Label hinzugefügt haben, müssen alle im Namespace vorhandenen Pods neu gestartet werden, damit die Sidecars eingefügt werden.
Bevor Sie neue Arbeitslasten in einem neuen Namespace bereitstellen, müssen Sie die automatische Injektion konfigurieren, damit Cloud Service Mesh den Traffic überwachen und sichern kann.
Die Schritte zum Aktivieren der automatischen Injektion hängen davon ab, ob Sie Standard-Injektionslabels oder das Überarbeitungslabel verwenden möchten:
Standard (empfohlen)
Wenn Sie eine Standard-Tag-Überarbeitung verwendet haben, um die automatische Injektion in den Gateway überprüfen, ob das Standard-Tag in dem Verzeichnis vorhanden ist, das Sie in
--output_dir
angegeben ist und auf die neu installierte Überarbeitung.DIR_PATH/istioctl tag list
Führen Sie den folgenden Befehl aus:
NAMESPACE
ist der Name des Namespace, in dem Sie die automatische Injektion aktivieren möchten.kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
Die Standard-Injektionslabels fügen die Überarbeitung ein, auf die das Standard-Tag verweist.
Überarbeitungslabel
Verwenden Sie den folgenden Befehl, um das Überarbeitungslabel für
istiod
zu finden:kubectl -n istio-system get pods -l app=istiod --show-labels
Die Ausgabe sieht dann ungefähr so aus:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1225-1-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1225-1,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1225-1-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1225-1,istio=istiod,pod-template-hash=5788d57586
Notieren Sie sich den Wert des Überarbeitungslabels
istiod
aus der Ausgabe in der SpalteLABELS
, das auf das Präfixistio.io/rev=
folgt. In diesem Beispiel ist der Wertasm-1225-1
.Wenden Sie das Überarbeitungslabel an und entfernen Sie das Label
istio-injection
, falls vorhanden. Im folgenden Befehl istNAMESPACE
der Name des Namespace, in dem Sie die automatische Einfügung aktivieren möchten.REVISION
ist das Überarbeitungslabel, das Sie im vorherigen Schritt notiert haben.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Sie können die Nachricht
"istio-injection not found"
in der Ausgabe ignorieren. Das bedeutet, dass der Namespace zuvor nicht den Wertistio-injection
-Label, das Sie in neuen Cloud Service Mesh-Installationen oder neue Bereitstellungen. Da die automatische Injektion Verhalten ist nicht definiert, wenn ein Namespace sowohl denistio-injection
-Wert und das Versionslabel, allekubectl label
-Befehle im In der Cloud Service Mesh-Dokumentation wird explizit dafür gesorgt, dass nur ein Wert festgelegt ist.
Wenn vor der Installation von Cloud Service Mesh in Ihrem Cluster Arbeitslasten ausgeführt wurden, starten Sie die Pods neu, um eine erneute Injektion auszulösen.
Wie Sie Pods neu starten, hängt von der Anwendung und der Umgebung ab, in der sich der Cluster befindet. Beispielsweise können Sie in Ihrer Staging-Umgebung einfach alle Pods löschen, wodurch sie neu gestartet werden. Aber in Ihrer Produktionsumgebung haben Sie vielleicht einen Prozess, der ein Blau/Grün-Deployment implementiert, sodass Pods sicher neu gestartet werden können, um Traffic-Unterbrechungen zu vermeiden.
Sie können
kubectl
verwenden, um einen rollierenden Neustart durchzuführen:kubectl rollout restart deployment -n NAMESPACE
Nächste Schritte
Wenn Ihr Mesh aus Clustern außerhalb von Google Cloud besteht, lesen Sie Multi-Cluster-Mesh-Netzwerk außerhalb von Google Cloud einrichten.