Wenn Sie ein Upgrade von Apigee Hybrid-Version 1.3 oder älter ausführen, ist zuerst ein Upgrade auf die Hybrid-Version 1.4 erforderlich, bevor Sie auf Version 1.5.10 aktualisieren können. Weitere Informationen finden Sie in der Anleitung unter Upgrade von Apigee Hybrid auf Version 1.4 ausführen.
Upgrade auf Version 1.5.10 – Übersicht
Die Schritte zum Upgrade von Apigee Hybrid werden in den folgenden Abschnitten erläutert:
- Sichern Sie die Hybridinstallation.
- Überprüfen Sie Ihre Kubernetes-Version und führen Sie gegebenenfalls ein Upgrade durch.
- Upgrade für ASM vornehmen.
- Installieren Sie die Hybrid-Laufzeitversion 1.5.
Voraussetzung
- Apigee Hybrid Version 1.4. Wenn Sie eine Aktualisierung von einer früheren Version ausführen, lesen Sie die Anleitung unter Upgrade von Apigee Hybrid auf Version 1.4 ausführen.
Auf Version 1.5 aktualisieren
- In dieser Anleitung wird die Umgebungsvariable APIGEECTL_HOME für das Verzeichnis in Ihrem Dateisystem verwendet, in dem Sie
apigeectlinstalliert haben. Falls erforderlich,cdin Ihrapigeectl-Verzeichnis und definieren Sie die Variable mit dem folgenden Befehl:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- Empfohlen: Erstellen Sie eine Sicherungskopie Ihres
$APIGEECTL_HOME/-Verzeichnisses der Version 1.4. Beispiel:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.4-backup.tar.gz $APIGEECTL_HOME - Empfohlen: Sichern Sie Ihre Cassandra-Datenbank entsprechend der Anleitung unter Cassandra-Sicherung und -Wiederherstellung.
- Aktualisieren Sie Ihre Kubernetes-Plattform auf die von Hybrid 1.5 unterstützten Versionen. Weitere Informationen finden Sie in der Dokumentation der Plattform.
- Wenn Sie eine Version von
cert-managervor Version 1.2.0 ausführen, müssen Sie ein Upgrade auf Version 1.2.0 durchführen.-
Prüfen Sie die aktuelle
cert-manager-Version mit dem folgenden Befehl:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Es wird in etwa Folgendes zurückgegeben:
image: quay.io/jetstack/cert-manager-controller:v1.2.0 image: quay.io/jetstack/cert-manager-cainjector:v1.2.0 image: quay.io/jetstack/cert-manager-webhook:v1.2.0
-
Entfernen Sie die Bereitstellungen mit dem folgenden Befehl:
kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
Führen Sie folgenden Befehl aus, um
cert-managerauf Version 1.2.0 zu aktualisieren:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
-
Upgrade von ASM auf Version 1.27
Führen Sie das Upgrade mithilfe der für Ihre Plattform geeigneten ASM-Dokumentation durch:
Die Anweisungen zur Installation und Konfiguration von ASM sind je nach Plattform unterschiedlich. Die Plattformen sind in folgende Kategorien unterteilt:
- GKE: Google Kubernetes Engine-Cluster, die in Google Cloud ausgeführt werden.
- Außerhalb von Google Cloud: Anthos-Cluster, die auf Folgendem ausgeführt werden:
- Anthos Clusters on VMware (GKE On-Prem)
- Anthos on Bare Metal
- Anthos-Cluster in AWS
- Amazon EKS
- Andere Kubernetes-Plattformen: Konforme Cluster, die erstellt und ausgeführt werden auf:
- AKS
- EKS
- OpenShift
GKE
Die Reihenfolge für das Upgrade auf ASM Version 1.8.x für Ihre Hybrid-Installation sieht so aus:
- Bereiten Sie das Upgrade vor.
- Installieren Sie die neue Version von ASM.
- Löschen Sie die Bereitstellungen, Dienste und Webhooks der vorherigen ASM-Version aus Ihrer aktuellen Installation.
- Aktualisieren Sie Ihre Gateways und konfigurieren Sie die neuen Webhooks.
So führen Sie ein Upgrade auf ASM Version 1.8.x für Hybrid in GKE durch:
- Prüfen Sie die Anforderungen unter Upgrade von Anthos Service Mesh durchführen, führen Sie das Upgrade jedoch noch nicht durch.
- Bestimmen Sie vor der Installation der neuen Version die aktuelle Überarbeitung. Sie benötigen diese Informationen, um die Bereitstellungen, Dienste und Webhooks der vorherigen ASM-Version aus Ihrer aktuellen Installation zu löschen. Verwenden Sie den folgenden Befehl, um die aktuelle Istio-Überarbeitung in einer Umgebungsvariable zu speichern:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV} - Erstellen Sie eine neue
overlay.yaml-Datei oder prüfen Sie, ob Ihre vorhandeneoverlay.yaml-Datei den folgenden Inhalt hat:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1271-5 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Folgen Sie der Anleitung in den folgenden Abschnitten der ASM-Dokumentation:
- asmcli herunterladen
- Clusteradministratorberechtigungen erteilen
- Projekt und Cluster validieren
- Upgrade mit optionalen Features ausführen Beenden Sie den Vorgang, bevor Sie mit dem Abschnitt „Upgrade für Gateways durchführen” beginnen.
- Löschen Sie den mutierenden Webhook und den validierenden Webhook:
- Wechseln Sie per
cdin das Verzeichnis, in dem Sieasmcliinstalliert haben. - Speichern Sie die aktuelle neue Überarbeitung in einer Umgebungsvariablen für die Verwendung im Skript, um die Webhooks zu löschen:
UPGRADE_REV="asm-1271-5"
- Erstellen Sie ein Shell-Skript mit den folgenden Befehlen:
#!/bin/bash set -ex PROJECT_ID="YOUR_PROJECT_ID" CLUSTER_NAME="YOUR_CLUSTER_NAME" CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION" kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Führen Sie das Skript aus, um die aktuellen Webhooks zu löschen.
- Wechseln Sie per
- Führen Sie die Schritte unter Upgrade für Gateways durchführen aus, um die neuen Webhooks zu erstellen und den Traffic auf die neuen Gateways umzuleiten.
Außerhalb von Google Cloud
Diese Anleitung behandelt Upgrades von ASM auf:
- Anthos Clusters on VMware (GKE On-Prem)
- Anthos on Bare Metal
- Anthos-Cluster in AWS
- Amazon EKS
- Prüfen Sie die Anforderungen unter Upgrade von Anthos Service Mesh durchführen, führen Sie das Upgrade jedoch noch nicht durch.
- Bestimmen Sie vor der Installation der neuen Version die aktuelle Überarbeitung. Sie benötigen diese Informationen, um den validierenden Webhook und den mutierenden Webhook aus Ihrer aktuellen ASM-Installation zu löschen. Verwenden Sie den folgenden Befehl, um die aktuelle Istio-Überarbeitung in einer Umgebungsvariable zu speichern:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV} - Erstellen Sie eine neue
overlay.yaml-Datei oder prüfen Sie, ob Ihre vorhandeneoverlay.yaml-Datei den folgenden Inhalt hat:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1271-5 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 values: gateways: istio-ingressgateway: runAsRoot: true meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Folgen Sie der Anleitung in den folgenden Abschnitten der ASM-Dokumentation:
- asmcli herunterladen
- Clusteradministratorberechtigungen erteilen
- Projekt und Cluster validieren
- Upgrade mit optionalen Features ausführen Beenden Sie den Vorgang, bevor Sie mit dem Abschnitt „Upgrade für Gateways durchführen” beginnen.
- Löschen Sie den mutierenden Webhook und den validierenden Webhook:
- Wechseln Sie per
cdin das Verzeichnis, in dem Sieasmcliinstalliert haben. - Speichern Sie die aktuelle neue Überarbeitung in einer Umgebungsvariablen für die Verwendung im Skript, um die Webhooks zu löschen:
UPGRADE_REV="asm-1271-5"
- Erstellen Sie ein Shell-Skript mit den folgenden Befehlen:
#!/bin/bash set -ex PROJECT_ID="YOUR_PROJECT_ID" CLUSTER_NAME="YOUR_CLUSTER_NAME" CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION" gcloud config configurations activate ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Führen Sie das Skript aus, um die aktuellen Webhooks zu löschen.
- Wechseln Sie per
- Führen Sie die Schritte unter Upgrade für Gateways durchführen aus, um die neuen Webhooks zu erstellen und den Traffic auf die neuen Gateways umzuleiten.
AKS / EKS
In dieser Anleitung ist das Verfahren zur Aktualisierung der Version istio-1.27.1-asm.5 von Anthos Service Mesh (ASM) auf mit Anthos verbundenen Clustern dasselbe wie bei einer Neuinstallation.
Installation von Anthos Service Mesh vorbereiten
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-linux-amd64.tar.gz
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.27.1-asm.5-linux-amd64.tar.gz.1.sig istio-1.27.1-asm.5.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-linux-amd64.tar.gz
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests/profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
export PATH=$PWD/bin:$PATH
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-osx.tar.gz
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.27.1-asm.5-osx.tar.gz.1.sig istio-1.27.1-asm.5.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-osx.tar.gz
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests/profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
export PATH=$PWD/bin:$PATH
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-win.zip
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-win.zip.1.sig
openssl dgst -verify - -signature istio-1.27.1-asm.5-win.zip.1.sig istio-1.27.1-asm.5.win.zip <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-win.zip
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests\profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
set PATH=%CD%\bin:%PATH%
- Nachdem Sie ASM Istio installiert haben, prüfen Sie die Version von
istioctl:istioctl version
- Erstellen Sie einen Namespace namens "istio-system" für die Komponenten der Steuerungsebene:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Validierten Webhook konfigurieren
Wenn Sie Anthos Service Mesh installieren, legen Sie ein Überarbeitungslabel auf Istiod fest. Sie müssen für den Validierungs-Webhook dieselbe Überarbeitung festlegen.
- Erstellen Sie eine Datei mit dem Namen
istiod-service.yamlund mit folgendem Inhalt:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1271-5 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1271-5 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Verwenden Sie
kubectl, um die validierende Webhook-Konfiguration anzuwenden:kubectl apply -f istiod-service.yaml
- Prüfen Sie, ob die Konfiguration angewendet wurde:
kubectl get svc -n istio-system
Die Antwort sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Anthos Service Mesh installieren
- Installieren Sie Anthos Service Mesh mit
istioctlmithilfe des Profilsasm-multicloud:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1271-5"Die Ausgabe sollte in etwa so aussehen:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1271-5-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1271-5-798ffb964-fnj8c 1/1 Running 1 3m21s
Mit dem Argument
--set revisionwird Istiod ein Überarbeitungslabel im Formatistio.io/rev=asm-1271-5hinzugefügt. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten Istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Injektion für einen Namespace aktivieren möchten, müssen Sie sie mit einer Überarbeitung kennzeichnen, die mit dem Label auf Istiod übereinstimmt. - Prüfen Sie, ob Ihre Installation abgeschlossen ist:
kubectl get svc -n istio-system
Die Ausgabe sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1271-5 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
In dieser Anleitung ist das Verfahren zur Aktualisierung der Version istio-1.27.1-asm.5 von Anthos Service Mesh (ASM) auf mit Anthos verbundenen Clustern dasselbe wie bei einer Neuinstallation.
Installation von Anthos Service Mesh vorbereiten
- Weisen Sie istio-system die Sicherheitskontextbeschränkung
anyuid(SCC) mit dem folgenden OpenShift-Befehlszeilenbefehl (oc) zu:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-linux-amd64.tar.gz
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.27.1-asm.5-linux-amd64.tar.gz.1.sig istio-1.27.1-asm.5.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-linux-amd64.tar.gz
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests/profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
export PATH=$PWD/bin:$PATH
- Weisen Sie istio-system die Sicherheitskontextbeschränkung
anyuid(SCC) mit dem folgenden OpenShift-Befehlszeilenbefehl (oc) zu:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-osx.tar.gz
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.27.1-asm.5-osx.tar.gz.1.sig istio-1.27.1-asm.5.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-osx.tar.gz
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests/profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
export PATH=$PWD/bin:$PATH
- Weisen Sie istio-system die Sicherheitskontextbeschränkung
anyuid(SCC) mit dem folgenden OpenShift-Befehlszeilenbefehl (oc) zu:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-win.zip
- Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.27.1-asm.5-win.zip.1.sig
openssl dgst -verify - -signature istio-1.27.1-asm.5-win.zip.1.sig istio-1.27.1-asm.5.win.zip <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
tar xzf istio-1.27.1-asm.5-win.zip
Mit diesem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis
istio-1.27.1-asm.5ein Installationsverzeichnis erstellt, das Folgendes enthält:- Beispielanwendungen im Verzeichnis
samples. - Das
istioctl-Befehlszeilentool, mit dem Sie Anthos Service Mesh installieren, befindet sich im Verzeichnisbin. - Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis
manifests\profiles.
- Beispielanwendungen im Verzeichnis
- Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden:
cd istio-1.27.1-asm.5
- Fügen Sie die Tools im Verzeichnis /bin Ihrem PATH hinzu:
set PATH=%CD%\bin:%PATH%
- Nachdem Sie ASM Istio installiert haben, prüfen Sie die Version von
istioctl:istioctl version
- Erstellen Sie einen Namespace namens "istio-system" für die Komponenten der Steuerungsebene:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Validierten Webhook konfigurieren
Wenn Sie Anthos Service Mesh installieren, legen Sie ein Überarbeitungslabel auf Istiod fest. Sie müssen für den Validierungs-Webhook dieselbe Überarbeitung festlegen.
- Erstellen Sie eine Datei mit dem Namen
istiod-service.yamlund mit folgendem Inhalt:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1271-5 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1271-5 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Verwenden Sie
kubectl, um die validierende Webhook-Konfiguration anzuwenden:kubectl apply -f istiod-service.yaml
- Prüfen Sie, ob die Konfiguration angewendet wurde:
kubectl get svc -n istio-system
Die Antwort sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Anthos Service Mesh installieren
- Installieren Sie Anthos Service Mesh mit
istioctlmithilfe des Profilsasm-multicloud:istioctl install \ --set profile=asm-multicloud \ --set revision=istio-1.27.1-asm.5Die Ausgabe sollte in etwa so aussehen:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1271-5-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1271-5-798ffb964-fnj8c 1/1 Running 1 3m21s
Mit dem Argument
--set revisionwird Istiod ein Überarbeitungslabel im Formatistio.io/rev=1.8.6-asm.1hinzugefügt. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten Istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Injektion für einen Namespace aktivieren möchten, müssen Sie sie mit einer Überarbeitung kennzeichnen, die mit dem Label auf Istiod übereinstimmt. - Prüfen Sie, ob Ihre Installation abgeschlossen ist:
kubectl get svc -n istio-system
Die Ausgabe sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1271-5 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Hybrid 1.5.10-Laufzeit installieren
Laden Sie das Release-Paket für Ihr Betriebssystem herunter:
Mac 64-Bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_64.tar.gzLinux 64-Bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_64.tar.gzMac 32-Bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_32.tar.gzLinux 32-Bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_32.tar.gz- Benennen Sie Ihr aktuelles
apigeectl/-Verzeichnis in einen Backupverzeichnisnamen um. Beispiel:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/ -
Extrahieren Sie die heruntergeladenen gzip-Dateiinhalte in Ihr Hybrid-Basisverzeichnis. Beispiel:
tar xvzf FILENAME.tar.gz -C HYBRID_BASE_DIRECTORY
cdzum Basisverzeichnis.-
Die TAR-Inhalte werden standardmäßig in ein Verzeichnis mit der Version und der Plattform in ihrem Namen erweitert. Beispiel:
./apigeectl_1.5.0-d591b23_linux_64. Benennen Sie dieses Verzeichnis inapigeectlum:mv apigeectl_1.5.0-d591b23_linux_64 apigeectl
- Führen Sie im neuen
apigeectl/-Verzeichnisapigeectl init,apigeectl applyundapigeectl check-readyaus:- Initialisieren Sie Hybrid 1.5.10:
apigeectl init -f OVERRIDES
.yamlDabei ist OVERRIDES
.yamldie bearbeitete Dateioverrides.yaml. - Überprüfen Sie mit den folgenden Befehlen, ob sie richtig initialisiert wurde:
apigeectl check-ready -f OVERRIDES
.yamlkubectl describe apigeeds -n apigee
Die Ausgabe sollte in etwa so aussehen:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running - Die Syntax des Flags
apigeectl--dry-runhängt von der ausgeführten Version vonkubectlab. Prüfen Sie die Version vonkubectl:gcloud version
- Suchen Sie nach Fehlern mit einem Probelauf, wobei der Befehl für Ihre Version von
kubectlgeeignet ist:kubectl-Version 1.17 und niedriger:apigeectl apply -f OVERRIDES
.yaml--dry-run=trueAb
kubectl-Version 1.18:apigeectl apply -f OVERRIDES
.yaml--dry-run=client - Wenden Sie Ihre Überschreibungen an. Wählen Sie je nach Ihrer Installation die Anleitung für Produktionsumgebungen oder Demo-/experimentelle Umgebungen aus und folgen Sie diesen.
Produktion
In Produktionsumgebungen sollten Sie jede Hybridkomponente einzeln aktualisieren und den Status der aktualisierten Komponente prüfen, bevor Sie mit der nächsten Komponente fortfahren.
- Wenden Sie Ihre Überschreibungen an, um Upgrade von Cassandra durchzuführen:
apigeectl apply -f OVERRIDES
.yaml--datastore - Abschluss prüfen:
apigeectl check-ready -f OVERRIDES
.yamlFahren Sie mit dem nächsten Schritt nur fort, wenn die Pods bereit sind.
- Wenden Sie Ihre Überschreibungen an, um Telemetriekomponenten zu aktualisieren, und prüfen Sie den Fortschritt:
apigeectl apply -f OVERRIDES
.yaml--telemetryapigeectl check-ready -f OVERRIDES
.yaml - Redis-Komponenten einrichten:
apigeectl apply -f OVERRIDES
.yaml--redis - Wenn Sie Ihre Überschreibungen an, um zu aktualisieren die Komponenten auf Organisationsebene (MART, Watcher, Apigee Connect) und prüfen Sie den Abschluss des Vorgangs:
apigeectl apply -f OVERRIDES
.yaml--orgapigeectl check-ready -f OVERRIDES
.yaml - Nutzen Sie Überschreibungen, um Ihre Umgebungen zu aktualisieren. Sie haben zwei Möglichkeiten:
- Jede Umgebung separat: Sie wenden die Überschreibungen auf eine einzelne Umgebung gleichzeitig an und prüfen den Fortschritt. Wiederholen Sie den Schritt für jede Umgebung:
apigeectl apply -f OVERRIDES
.yaml--env ENV_NAMEapigeectl check-ready -f OVERRIDES
.yamlDabei ist ENV_NAME der Name der Umgebung, die Sie aktualisieren.
- Alle Umgebungen gleichzeitig: Sie können die Überschreibungen auf alle Umgebungen gleichzeitig anwenden und den Abschluss prüfen:
apigeectl apply -f OVERRIDES
.yaml--all-envsapigeectl check-ready -f OVERRIDES
.yaml
- Jede Umgebung separat: Sie wenden die Überschreibungen auf eine einzelne Umgebung gleichzeitig an und prüfen den Fortschritt. Wiederholen Sie den Schritt für jede Umgebung:
Demo/Experimentell
In den meisten Demo- oder experimentellen Umgebungen können Sie die Überschreibungen auf alle Komponenten gleichzeitig anwenden. Wenn Ihre Demo-/experimentelle Umgebung groß und komplex ist oder eine Produktionsumgebung genau nachahmt, sollten Sie die Anleitung zur Aktualisierung von Produktionsumgebungen verwenden.
apigeectl apply -f OVERRIDES
.yaml- Prüfen Sie den Status:
apigeectl check-ready -f OVERRIDES
.yaml
- Wenden Sie Ihre Überschreibungen an, um Upgrade von Cassandra durchzuführen:
- Initialisieren Sie Hybrid 1.5.10:
Rollback für Upgrade durchführen
So führen Sie ein Rollback für ein Upgrade durch:
- Bereinigen Sie abgeschlossene Jobs für den Namespace der Hybridlaufzeit. Dabei ist NAMESPACE der Namespace, der in der Überschreibungsdatei angegeben ist, wenn Sie einen Namespace angegeben haben. Wenn nicht, ist der Standard-Namespace
apigee:kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Bereinigen Sie abgeschlossene Jobs für den Namespace
apigee-system:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Ändern Sie die Variable
APIGEECTL_HOMEso, dass sie auf das Verzeichnis verweist, das die ursprüngliche Version vonapigeectlenthält. Beispiel:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- Führen Sie im Stammverzeichnis der Installation, zu der Sie ein Rollback durchführen möchten, folgenden Befehl aus:
apigeectl applyPrüfen Sie den Status Ihrer Pods, löschen Sie die Redis-Komponente (neu in der Hybrid-Version 1.5.0) und führen Sie dann Folgendes aus:apigeectl init. Achten Sie darauf, die Original-Überschreibungsdatei für die Version zu verwenden, für die Sie ein Rollback durchführen möchten:- Führen Sie
apigeectl applyaus.$APIGEECTL_HOME/apigeectl apply -f overrides/ORIGINAL_OVERRIDES.yaml - Prüfen Sie den Status der Pods:
kubectl -n NAMESPACE get pods
Dabei ist NAMESPACE Ihr Apigee Hybrid-Namespace.
Fahren Sie nur mit dem nächsten Schritt fort, wenn der
apigeeds-Pod ausgeführt wird. -
Da Redis eine neue Komponente in der Hybrid-Version 1.5 ist, löschen Sie es mit dem folgenden Befehl:
apigeectl_1.5.0 delete --redis -f ORIGINAL_OVERRIDES
.yaml - Führen Sie
apigeectl initaus.$APIGEECTL_HOME/apigeectl init -f overrides/ORIGINAL_OVERRIDES.yaml
- Führen Sie