Panoramica dell'upgrade alla versione 1.5.10.
Le procedure per l'upgrade di Apigee hybrid sono organizzate nelle seguenti sezioni:
- Esegui il backup dell'installazione ibrida.
- Controlla la versione di Kubernetes ed esegui l'upgrade come appropriato.
- Esegui l'upgrade di ASM.
- Installa la versione 1.5 del runtime di hybrid.
Prerequisito
- Versione 1.4 di Apigee hybrid. Se esegui l'aggiornamento da una versione precedente, consulta le istruzioni per l'upgrade di Apigee hybrid alla versione 1.4.
Upgrade alla versione 1.5
- Queste istruzioni utilizzano la variabile di ambiente APIGEECTL_HOME per la directory nel file system in cui hai installato
apigeectl
. Se necessario,cd
nella directoryapigeectl
e definisci la variabile con il seguente comando:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (Consigliato) Crea una copia di backup della directory della versione 1.4
$APIGEECTL_HOME/
. Ad esempio:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.4-backup.tar.gz $APIGEECTL_HOME
- (Consigliato) Esegui il backup del database Cassandra seguendo le istruzioni riportate in Backup e recupero di Cassandra
- Esegui l'upgrade della piattaforma Kubernetes alle versioni supportate da hybrid 1.5.
Se hai bisogno di aiuto, consulta la documentazione della tua piattaforma.
Fai clic per espandere un elenco delle piattaforme supportate
Versioni di Apigee hybrid Piattaforme
1,5 1.6 Anthos(3) (Google Cloud) 1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (AWS) 1.6.x
1.7.x
1.8.x(1)1.7.x
1.8.x(1)
1.9.3+
1.10.xAnthos(3) (Azure) N/D 1.8.x Anthos(3) (on-premise - VMware) 1.6.x
1.7.x
1.8.x(1)1.7.x
1.8.x(1)
1.9.3+
1.10.xAnthos(3) (Bare Metal) 1.6.x
1.7.x1.7.x
1.8.2+
1.9.3+
1.10.xAnthos(3) (cluster collegati - multi-cloud)
Versione Kubernetes (EKS)1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (cluster collegati - multi-cloud)
Versione Kubernetes (AKS)1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (cluster collegati - multi-cloud)
Versione OpenShift4.5
4.6
4.74.6
4.7
4.8Anthos(3) (cluster collegati - multi-cloud)
Versione Konvoy1.7.x 1.7.x Componenti
1,5 1.6 Anthos Service Mesh (ASM)(2) 1.7.x
1.8.x
1.9.x
1.12.x (per Apigee hybrid 1.5 a partire dalla versione 1.5.9)1.9.x
1.10.x
1.12.x (Apigee hybrid versione 1.6.6 e successive)JDK JDK 11 JDK 11 cert-manager 1.2.0 1.2.0
1.5.4Cassandra 3.11.6 3.11.6 (1) Nella versione 1.8.2 e successive, segui le istruzioni riportate in questo documento: Conflitto con cert-manager durante l'upgrade alla versione 1.8.2 o successive.
(2) Installa solo le versioni supportate di ASM.
(3) Installa solo le versioni supportate di Anthos.
- Se utilizzi una versione di
cert-manager
precedente alla 1.2.0, devi eseguirne l'upgrade alla versione 1.2.0.-
Controlla la versione corrente di
cert-manager
utilizzando il seguente comando:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Viene restituito qualcosa di simile al seguente:
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
-
Rimuovi i deployment utilizzando il seguente comando:
kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
Esegui l'upgrade di
cert-manager
alla versione 1.2.0 utilizzando il seguente comando:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
-
Esegui l'upgrade di ASM alla versione 1.12
Esegui l'upgrade utilizzando la documentazione ASM appropriata per la tua piattaforma:
Le istruzioni per installare e configurare ASM variano a seconda della piattaforma. Le piattaforme sono suddivise nelle seguenti categorie:
- GKE: cluster Google Kubernetes Engine in esecuzione su Google Cloud.
- Al di fuori di Google Cloud: cluster Anthos in esecuzione su:
- Cluster Anthos su VMware (GKE on-prem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
- Altre piattaforme Kubernetes: cluster conformi creati ed eseguiti su:
- AKS
- EKS
- OpenShift
La sequenza per eseguire l'upgrade alla versione 1.8.x di ASM per l'installazione ibrida è la seguente:
- Preparati per l'upgrade.
- Installa la nuova versione di ASM.
- Elimina i deployment, i servizi e gli webhook della versione ASM precedente dalla tua installazione corrente.
- Esegui l'upgrade dei gateway e configura i nuovi webhook.
Per eseguire l'upgrade alla versione 1.8.x di ASM per l'infrastruttura ibrida su GKE:
- Esamina i requisiti in Eseguire l'upgrade di Anthos Service Mesh, ma non eseguire ancora l'upgrade.
- Prima di installare la nuova versione, determina la revisione corrente. Ti serviranno queste informazioni per eliminare i deployment, i servizi e gli webhook della versione ASM precedente dalla tua installazione attuale. Utilizza il seguente comando per archiviare la revisione corrente di istiod in una variabile di ambiente:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crea un nuovo file
overlay.yaml
o verifica che quello esistenteoverlay.yaml
contenga i seguenti contenuti:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 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)%"}' - Segui le istruzioni riportate nelle seguenti sezioni della documentazione di ASM:
- Scarica asmcli
- Concedere le autorizzazioni di amministratore del cluster
- Convalida progetto e cluster
- Eseguire l'upgrade con funzionalità facoltative. Interrompi prima di iniziare la sezione "Eseguire l'upgrade dei gateway"
- Elimina l'webhook con modifica e l'webhook di convalida:
cd
nella directory in cui hai installatoasmcli
.- Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
UPGRADE_REV="asm-1129-3"
- Crea uno script shell contenente i seguenti comandi:
#!/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 -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_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 - Esegui lo script per eliminare gli webhook attuali.
- Segui i passaggi descritti in Eseguire l'upgrade dei gateway per creare i nuovi webhook e trasferire il traffico ai nuovi gateway.
Queste istruzioni riguardano l'upgrade di ASM su:
- Cluster Anthos su VMware (GKE on-prem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
- Esamina i requisiti in Eseguire l'upgrade di Anthos Service Mesh, ma non eseguire ancora l'upgrade.
- Prima di installare la nuova versione, determina la revisione corrente. Ti serviranno queste informazioni per eliminare il webhook di convalida e il webhook di mutazione dalla tua attuale installazione di ASM. Utilizza il seguente comando per archiviare la revisione corrente di Istiod in una variabile di ambiente:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crea un nuovo file
overlay.yaml
o verifica che quello esistenteoverlay.yaml
contenga i seguenti contenuti:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 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)%"}' - Segui le istruzioni riportate nelle seguenti sezioni della documentazione di ASM:
- Scarica asmcli
- Concedere le autorizzazioni di amministratore del cluster
- Convalida progetto e cluster
- Eseguire l'upgrade con funzionalità facoltative. Interrompi prima di iniziare la sezione "Eseguire l'upgrade dei gateway"
- Elimina l'webhook con modifica e l'webhook di convalida:
cd
nella directory in cui hai installatoasmcli
.- Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
UPGRADE_REV="asm-1129-3"
- Crea uno script shell contenente i seguenti comandi:
#!/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 -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_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 - Esegui lo script per eliminare gli webhook attuali.
- Segui i passaggi descritti in Eseguire l'upgrade dei gateway per creare i nuovi webhook e trasferire il traffico ai nuovi gateway.
In queste istruzioni, la procedura di upgrade della versione istio-1.12.9-asm.3 di Anthos Service Mesh (ASM) sui cluster Anthos collegati è la stessa di un'installazione da zero.
Preparazione all'installazione di Anthos Service Mesh
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
export PATH=$PWD/bin:$PATH
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
export PATH=$PWD/bin:$PATH
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-win.zip
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests\profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
set PATH=%CD%\bin:%PATH%
- Ora che ASM Istio è installato, controlla la versione di
istioctl
:istioctl version
- Crea uno spazio dei nomi denominato istio-system per i componenti del piano di controllo:
kubectl create namespace istio-system
Configura il webhook di convalida
Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.
- Crea un file denominato
istiod-service.yaml
con i seguenti contenuti:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 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-1129-3 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)%"}'
- Utilizza
kubectl
per applicare la configurazione dell'webhook di convalida:kubectl apply -f istiod-service.yaml
- Verifica che la configurazione sia stata applicata:
kubectl get svc -n istio-system
La risposta dovrebbe essere simile alla seguente:
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
Installazione di Anthos Service Mesh
- Installa Anthos Service Mesh con
istioctl
utilizzando il profiloasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
L'output dovrebbe avere il seguente aspetto:
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-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
L'argomento
--set revision
aggiunge a istiod un'etichetta di revisione nel formatoistio.io/rev=asm-1129-3
. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore di sidecar automatico per associare i sidecar iniettati a una determinata revisione dell'istiod. Per attivare l'iniezione automatica di sidecar per uno spazio dei nomi, devi etichettarlo con una revisione corrispondente all'etichetta su istiod. - Verifica che l'installazione sia stata completata:
kubectl get svc -n istio-system
L'output dovrebbe avere il seguente aspetto:
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-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
In queste istruzioni, la procedura di upgrade della versione istio-1.12.9-asm.3 di Anthos Service Mesh (ASM) sui cluster Anthos collegati è la stessa di un'installazione da zero.
Preparazione all'installazione di Anthos Service Mesh
- Concedi la limitazione del contesto di sicurezza
anyuid
(SCC) a istio-system con il seguente comando OpenShift CLI (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
export PATH=$PWD/bin:$PATH
- Concedi la limitazione del contesto di sicurezza
anyuid
(SCC) a istio-system con il seguente comando OpenShift CLI (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
export PATH=$PWD/bin:$PATH
- Concedi la limitazione del contesto di sicurezza
anyuid
(SCC) a istio-system con il seguente comando OpenShift CLI (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- Scarica il file della firma e utilizza openssl per verificarla:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio,
per estrarre i contenuti nella directory di lavoro corrente:
tar xzf istio-1.12.9-asm.3-win.zip
Il comando crea una directory di installazione nella directory di lavoro corrente denominata
istio-1.12.9-asm.3
che contiene:- Applicazioni di esempio nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests\profiles
.
- Applicazioni di esempio nella directory
- Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
cd istio-1.12.9-asm.3
- Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
set PATH=%CD%\bin:%PATH%
- Ora che ASM Istio è installato, controlla la versione di
istioctl
:istioctl version
- Crea uno spazio dei nomi denominato istio-system per i componenti del piano di controllo:
kubectl create namespace istio-system
Configura il webhook di convalida
Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.
- Crea un file denominato
istiod-service.yaml
con i seguenti contenuti:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 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-1129-3 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)%"}'
- Utilizza
kubectl
per applicare la configurazione dell'webhook di convalida:kubectl apply -f istiod-service.yaml
- Verifica che la configurazione sia stata applicata:
kubectl get svc -n istio-system
La risposta dovrebbe essere simile alla seguente:
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
Installazione di Anthos Service Mesh
- Installa Anthos Service Mesh con
istioctl
utilizzando il profiloasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision=istio-1.12.9-asm.3
L'output dovrebbe avere il seguente aspetto:
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-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
L'argomento
--set revision
aggiunge a istiod un'etichetta di revisione nel formatoistio.io/rev=1.8.6-asm.1
. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore di sidecar automatico per associare i sidecar iniettati a una determinata revisione dell'istiod. Per attivare l'iniezione automatica di sidecar per uno spazio dei nomi, devi etichettarlo con una revisione corrispondente all'etichetta su istiod. - Verifica che l'installazione sia stata completata:
kubectl get svc -n istio-system
L'output dovrebbe avere il seguente aspetto:
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-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Installa il runtime di hybrid 1.5.10
Scarica il pacchetto della release per il tuo sistema operativo:
Mac 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_64.tar.gz
Linux a 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_64.tar.gz
Mac a 32 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_32.tar.gz
Linux a 32 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_32.tar.gz
- Rinomina la directory
apigeectl/
attuale con il nome di una directory di backup. Ad esempio:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/
-
Estrai i contenuti del file gzip scaricato nella directory di base ibrida. Ad esempio:
tar xvzf
FILENAME .tar.gz -CHYBRID_BASE_DIRECTORY cd
alla directory di base.-
Per impostazione predefinita, i contenuti del file tar vengono espansi in una directory con la versione e la piattaforma nel nome. Ad esempio:
./apigeectl_1.5.0-d591b23_linux_64
. Rinomina la directory inapigeectl
:mv
apigeectl_1.5.0-d591b23_linux_64 apigeectl - Nella nuova directory
apigeectl/
, eseguiapigeectl init
,apigeectl apply
eapigeectl check-ready
:- Inizializza hybrid 1.5.10:
apigeectl init -f
OVERRIDES .yaml
dove OVERRIDES
.yaml
è il fileoverrides.yaml
modificato. - Verifica che sia stato inizializzato correttamente con i seguenti comandi:
apigeectl check-ready -f
OVERRIDES .yaml
kubectl describe apigeeds -n apigee
L'output dovrebbe avere il seguente aspetto:
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
- La sintassi del flag
apigeectl
--dry-run
dipende dalla versione dikubectl
in esecuzione. Controlla la versione dikubectl
:gcloud version
- Verifica la presenza di errori con una prova simulata utilizzando il comando appropriato per la tua versione di
kubectl
:kubectl
versione 1.17 e precedenti:apigeectl apply -f
OVERRIDES .yaml
--dry-run=truekubectl
versione 1.18 e successive:apigeectl apply -f
OVERRIDES .yaml
--dry-run=client - Applica le sostituzioni. Seleziona e segui le istruzioni per gli ambienti di produzione o per gli ambienti demo/sperimentali, a seconda dell'installazione.
Per gli ambienti di produzione, devi eseguire l'upgrade di ogni componente ibrida singolarmente e controllare lo stato del componente di cui è stato eseguito l'upgrade prima di procedere con il componente successivo.
- Applica le sostituzioni per eseguire l'upgrade di Cassandra:
apigeectl apply -f
OVERRIDES .yaml
--datastore - Controlla il completamento:
apigeectl check-ready -f
OVERRIDES .yaml
Vai al passaggio successivo solo quando i pod sono pronti.
- Applica le sostituzioni per eseguire l'upgrade dei componenti di Telemetria e controlla il completamento:
apigeectl apply -f
OVERRIDES .yaml
--telemetryapigeectl check-ready -f
OVERRIDES .yaml
- Avvia i componenti Redis:
apigeectl apply -f
OVERRIDES .yaml
--redis - Applica le sostituzioni per eseguire l'upgrade dei componenti a livello di organizzazione (MART, Watcher e Apigee
Connect) e controlla il completamento:
apigeectl apply -f
OVERRIDES .yaml
--orgapigeectl check-ready -f
OVERRIDES .yaml
- Applica le sostituzioni per eseguire l'upgrade degli ambienti. Hai due opzioni:
- Per ambiente: applica le sostituzioni a un ambiente alla volta e controlla il completamento. Ripeti
questo passaggio per ogni ambiente:
apigeectl apply -f
OVERRIDES .yaml
--envENV_NAME apigeectl check-ready -f
OVERRIDES .yaml
dove ENV_NAME è il nome dell'ambiente di cui stai eseguendo l'upgrade.
- Tutti gli ambienti contemporaneamente: applica le sostituzioni a tutti gli ambienti contemporaneamente e controlla il completamento:
apigeectl apply -f
OVERRIDES .yaml
--all-envsapigeectl check-ready -f
OVERRIDES .yaml
- Per ambiente: applica le sostituzioni a un ambiente alla volta e controlla il completamento. Ripeti
questo passaggio per ogni ambiente:
Nella maggior parte degli ambienti demo o sperimentali, puoi applicare le sostituzioni a tutti i componenti contemporaneamente. Se il tuo ambiente di prova/sperimentale è grande e complesso o rispecchia molto da vicino un ambiente di produzione, ti consigliamo di utilizzare le istruzioni per l'upgrade degli ambienti di produzione
apigeectl apply -f
OVERRIDES .yaml
- Controlla lo stato:
apigeectl check-ready -f
OVERRIDES .yaml
- Applica le sostituzioni per eseguire l'upgrade di Cassandra:
- Inizializza hybrid 1.5.10:
Rollback di un upgrade
Per eseguire il rollback di un upgrade precedente:
- Ripulisci i job completati per lo spazio dei nomi dell'ambiente di runtime ibrido, dove NAMESPACE è lo spazio dei nomi specificato nel file degli override, se ne hai specificato uno. In caso contrario, lo spazio dei nomi predefinito è
apigee
:kubectl delete job -n
NAMESPACE \ $(kubectl get job -nNAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Elimina i job completati per lo spazio dei nomi
apigee-system
:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Modifica la variabile
APIGEECTL_HOME
in modo che punti alla directory che contiene la versione precedente diapigeectl
. Ad esempio:export APIGEECTL_HOME=
PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY - Nella directory principale dell'installazione a cui vuoi eseguire il rollback, esegui
apigeectl apply
, controlla lo stato dei pod, elimina il componente Redis (novità nella versione 1.5.0 di hybrid) e poi eseguiapigeectl init
. Assicurati di utilizzare il file delle sostituzioni originale per la versione di destinazione del rollback:- Esegui
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -f overrides/ORIGINAL_OVERRIDES .yaml
- Controlla lo stato dei pod:
kubectl -n
NAMESPACE get podsdove NAMESPACE è il tuo spazio dei nomi Apigee hybrid.
Vai al passaggio successivo solo quando il
apigeeds
pod è in esecuzione. -
Poiché Redis è un nuovo componente nella versione ibrida 1.5, esegui il seguente comando per eliminarlo:
apigeectl_1.5.0 delete --redis -f
ORIGINAL_OVERRIDES .yaml
- Esegui
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -f overrides/ORIGINAL_OVERRIDES .yaml
- Esegui