Auf dieser Seite erfahren Sie, wie Sie:
asmcli
ausführen, um eine neue Installation von Anthos Service Mesh 1.23.3-asm.2 durchzuführen- Stellen Sie optional ein Ingress-Gateway bereit.
- Ihre Arbeitslasten bereitstellen oder noch einmal bereitstellen, um Sidecar-Proxys einzufügen
Hinweis
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.
Anthos Service Mesh installieren
Im Folgenden wird beschrieben, wie Sie Anthos 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 Sie Beispielgateways und -tools wieistioctl
leicht 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 Anthos Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.
Wenn Sie Anthos Service Mesh auf mehreren Clustern installieren, führen Sie in jedem Cluster
asmcli install
aus. Achten Sie beim Ausführen vonasmcli install
darauf, für jeden Cluster dieselbeFLEET_PROJECT_ID
zu verwenden. Nachdem Anthos Service Mesh in allen Clustern installiert wurde, lesen Sie „Multi-Cluster-Mesh-Netzwerk lokal einrichten“.Wenn sich Ihre Cluster in verschiedenen Netzwerken befinden (weil sie im Inselmodus sind), sollten Sie mithilfe des Flags
--network_id
einen eindeutigen Netzwerknamen anasmcli
übergeben.
Standardfeatures und Mesh-CA installieren
In diesem Abschnitt wird beschrieben, wie Sie asmcli
ausführen, um Anthos Service Mesh mit den unterstützten Standardfeatures für Ihre Plattform zu installieren und die Anthos Service Mesh-Zertifizierungsstelle (Mesh-CA) zu aktivieren.
GKE
Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit Standardfeatures und Mesh CA zu installieren. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca
--project_id
,--cluster_name
und--cluster_location
geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.--fleet_id
: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendetasmcli
das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.--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.-
--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
: Mesh-CA als Zertifizierungsstelle verwenden.asmcli
konfiguriert Mesh-CA für die Verwendung der Workload Identity der Flotte.
Lokal
Führen Sie die folgenden Befehle in Anthos-Cluster auf VMware oder Anthos auf Bare Metal aus, um die Steuerungsebene mit Standardfeatures und Mesh 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 mesh_ca
--fleet_id
: Projekt-ID des Hostprojekts der Flotte.--kubeconfig
Der vollständige Pfad zurkubeconfig
-Datei. Die Umgebungsvariable$PWD
funktioniert hier 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 die Plattform lokal ist.-
--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
Mesh CA als Zertifizierungsstelle verwenden.asmcli
konfiguriert Mesh CA für die Verwendung der Workload Identity der Flotte.
Standardfeatures und CA Service installieren
In diesem Abschnitt wird beschrieben, wie Sie asmcli
ausführen, um Anthos Service Mesh mit den unterstützten Standardfeatures für Ihre Plattform zu installieren und CA Service als Zertifizierungsstelle zu aktivieren.
Neben Mesh CA können Sie auch Anthos Service Mesh zur Verwendung von Certificate Authority Service konfigurieren. Dieser Leitfaden bietet eine Möglichkeit zur Integration in CA Service, die für die folgenden Anwendungsfälle geeignet sein sollte:
- Wenn Sie unterschiedliche CAs benötigen, um Arbeitslastzertifikate auf unterschiedlichen Clustern zu signieren.
- Wenn Sie Zertifikate von benutzerdefinierten Istio-CA-Plug-ins verwenden möchten.
- Wenn Sie Ihre Signaturschlüssel in einem von Google verwalteten HSM sichern müssen.
- Wenn Sie in einer stark regulierten Branche tätig sind und der Compliance unterliegen.
- Wenn Sie Ihre Anthos Service Mesh-Zertifizierungsstelle mit einem benutzerdefinierten Unternehmensstammzertifikat verketten möchten, um Arbeitslast-Zertifikate zu signieren.
Die Kosten für Mesh CA sind im Preis für Anthos Service Mesh inbegriffen. CA Service ist nicht im Basispreis für Anthos Service Mesh enthalten und wird separat in Rechnung gestellt. Darüber hinaus enthält CA Service ein explizites SLA, die Mesh-CA jedoch nicht.
Für diese Einbindung erhalten alle Arbeitslasten in Anthos Service Mesh zwei IAM-Rollen:
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 CAs, um Anthos Service Mesh-Arbeitslastzertifikate zu signieren. Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
Wenn nur Zertifikate für Anthos 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.
Anthos Service Mesh für die Verwendung von CA Service konfigurieren
GKE
Installieren Sie die Anthos Service Mesh-Steuerungsebene, die Certificate Authority Service als Zertifizierungsstelle verwendet:
./asmcli install \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --enable_all \ --ca gcp_cas \ --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.--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 die Plattform lokal ist.-
--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 des Workload Identity der Flotte.--ca_pool
Die vollständige Kennung für den CA-Pool des Certificate Authority Service.
Installieren Sie ein Ingress-Gateway, um eingehende oder ausgehende HTTP/TCP-Verbindungen zu empfangen. Weitere Informationen finden Sie unter Gateways installieren.
Schließen Sie die Anthos Service Mesh-Installation ab, um das automatische Einfügen des Sidecar-Proxys für Ihre Arbeitslasten zu aktivieren. Weitere Informationen finden Sie unter Arbeitslasten bereitstellen und neu bereitstellen.
Lokal
Führen Sie die folgenden Befehle in Anthos-Clustern in VMware oder Anthos in Bare-Metal aus, um die Steuerungsebene mit Standardfeatures und Certificate Authority Service 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 \ --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.--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 die Plattform lokal ist.-
--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 des Workload Identity der Flotte.--ca_pool
Die vollständige Kennung für den CA-Pool des Certificate Authority Service.
Standardfeatures mit Istio-CA installieren
In diesem Abschnitt wird Folgendes erläutert:
- Zertifikate und Schlüssel für die Istio-Zertifizierungsstelle erstellen, die Anthos Service Mesh zum Signieren Ihrer Arbeitslasten verwendet
asmcli
ausführen, um Anthos Service Mesh mit Standardfeatures zu installieren und Istio-CA zu aktivieren
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 Anthos Service Mesh CA verwendet einen Zwischen-CA-Signierschlüssel und ein Zertifikat, das von der Stamm-CA signiert wird. 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.23.3-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 Anthos Service Mesh-Installationsdatei herunterladen und den Inhalt extrahieren.
Wechseln Sie zum Verzeichnis
istio-1.23.3-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:GKE
Führen Sie den folgenden Befehl aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. Geben Sie Ihre Werte in die angegebenen Platzhalter ein.
./asmcli install \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH
--project_id
,--cluster_name
und--cluster_location
geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.--fleet_id
: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendetasmcli
das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.--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.-
--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.
Lokal
Führen Sie die folgenden Befehle in Anthos-Cluster auf VMware oder Anthos auf Bare Metal 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 \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --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.--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 die Plattform lokal ist.-
--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 Anthos-Cluster in AWS aus, um die Steuerungsebene mit Standardfeatures und Istio CA zu installieren. 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 FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --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.--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 die Plattform lokal ist.-
--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.--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 die Plattform lokal ist.-
--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.
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 \ --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.--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 die Plattform lokal ist.-
--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.
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 FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH
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.--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 die Plattform lokal ist.-
--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.
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.
GKE
Führen Sie den folgenden Befehl 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 an. Beispiel: --custom_overlayoverlay_file1.yaml
--custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
. Geben Sie Ihre Werte in die vorhandenen Platzhalter ein.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca \
--custom_overlay OVERLAY_FILE
--project_id
,--cluster_name
und--cluster_location
geben die Projekt-ID an, in der sich der Cluster befindet, den Clusternamen und entweder die Clusterzone oder -region.--fleet_id
: Projekt-ID des Hostprojekts der Flotte. Wenn Sie diese Option nicht angeben, verwendetasmcli
das Projekt, in dem der Cluster bei der Registrierung erstellt wurde.--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.-
--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
Verwendet Mesh CA als Zertifizierungsstelle. Beachten Sie, dassasmcli
die Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte konfiguriert.--custom_overlay
: Den Namen der Overlay-Datei angeben.
Außerhalb von Google Cloud
Führen Sie die folgenden Befehle auf Anthos-Clustern in VMware, Anthos auf Bare-Metal, Anthos-Clustern in AWS, 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.--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 die Plattform lokal ist.-
--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
Verwendet Mesh CA als Zertifizierungsstelle. Beachten Sie, dassasmcli
die Mesh-Zertifizierungsstelle für die Verwendung der Workload Identity der Flotte konfiguriert.--custom_overlay
: Den Namen der Overlay-Datei angeben.
Gateways installieren
Anthos Service Mesh bietet Ihnen die Möglichkeit, Gateways als Teil Ihres Service Mesh bereitzustellen und zu verwalten. 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 Injektion auf dem Gateway, indem Sie ein Überarbeitungslabel auf den Gateway-Namespace anwenden. Das Überarbeitungslabel wird vom Sidecar-Injektor-Webhook verwendet, um eingefügte Proxys mit einer bestimmten Überarbeitung der Steuerungsebene zu verknüpfen.
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 Anthos Service Mesh-Version entspricht, z. B.
asm-1233-2
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
Wechseln Sie zu dem Verzeichnis, das Sie in
--output_dir
angegeben haben.Sie können die Beispielkonfiguration für das Ingress-Gateway im Verzeichnis
samples/gateways/istio-ingressgateway/
unverändert bereitstellen oder nach Bedarf ändern.kubectl apply -n GATEWAY_NAMESPACE \ -f DIR_PATH/samples/gateways/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
Anthos Service Mesh verwendet Sidecar-Proxys, um die Sicherheit, Zuverlässigkeit und Beobachtbarkeit von Netzwerken zu verbessern. Mit Anthos 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.
Die Installation ist erst abgeschlossen, wenn Sie die automatische Sidecar-Proxy-Einfügung (automatische Injektion) aktivieren und die Pods für alle Arbeitslasten neu starten, die auf dem Cluster ausgeführt wurden, bevor Sie Anthos Service Mesh installiert haben.
Wenn Sie die automatische Injektion aktivieren möchten, versehen Sie Ihre Namespaces mit dem Überarbeitungslabel, das bei der Installation von Anthos Service Mesh auf istiod
festgelegt wurde. Das Überarbeitungslabel wird vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod
-Überarbeitung zu verknüpfen. Nachdem Sie das Label hinzugefügt haben, müssen alle im Namespace vorhandenen Pods neu gestartet werden, damit Sidecars eingefügt werden können.
Bevor Sie neue Arbeitslasten in einem neuen Namespace bereitstellen, müssen Sie die automatische Injektion konfigurieren, damit Anthos Service Mesh den Traffic überwachen und sichern kann.
So aktivieren Sie die automatische Einfügung:
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-1233-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1233-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1233-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1233-2,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-1233-2
.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 bisher nicht das Labelistio-injection
hatte, was bei Neuinstallationen von Anthos Service Mesh oder neuen Bereitstellungen zu erwarten wäre. Da die automatische Einfügung fehlschlägt, wenn ein Namespace sowohl das Labelistio-injection
als auch das Überarbeitungslabel enthält, umfassen allekubectl label
-Befehle in der Anthos Service Mesh-Dokumentation das Entfernen des Labelsistio-injection
.Wenn vor der Installation von Anthos 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
So richten Sie ein Multi-Cluster-Mesh-Netzwerk ein:
Wenn Ihr Mesh-Netzwerk vollständig aus GKE-Clustern besteht, finden Sie weitere Informationen unter Multi-Cluster-Mesh-Netzwerk in GKE einrichten.
Wenn Ihr Mesh aus Clustern außerhalb von Google Cloud besteht, lesen Sie Multi-Cluster-Mesh-Netzwerk außerhalb von Google Cloud einrichten.
Beispielanwendung Online Boutique auf Anthos Service Mesh bereitstellen