Preparati a eseguire l'upgrade della tua installazione precedente di Knative serving ed esegui la migrazione dei tuoi carichi di lavoro configurando l'ambiente a riga di comando, creando variabili di ambiente e scaricando lo script di migrazione.
Prima di iniziare
Prima di eseguire l'upgrade, devi esaminare e assicurarti di soddisfare i requisiti.
Per impostazione predefinita, Cloud Shell include le versioni più recenti dei comandi
gcloud
ekubectl
. Se scegli di utilizzare l'ambiente a riga di comando della tua macchina locale, devi assicurarti di soddisfare i seguenti requisiti minimi:gcloud
versione 346.0.0 o successivekubectl
versione client 1.21 o successive
Scopri di più sulla configurazione degli strumenti a riga di comando
I passaggi di preparazione descritti in questa pagina sono necessari durante l'intero processo di upgrade e migrazione.
Importante: tutti i comandi utilizzati durante la procedura si basano sulle variabili di ambiente che imposti di seguito. Ad esempio, se chiudi Cloud Shell o la sessione scade, devi assicurarti che le variabili di ambiente richieste vengano reimpostate.
Configura l'ambiente
Per utilizzare Cloud Shell, apri Cloud Shell nella console Google Cloud :
Importante: Cloud Shell ha limiti di utilizzo e può andare in timeout. Se la sessione scade, devi assicurarti che le variabili di ambiente richieste vengano reimpostate.
Crea le seguenti variabili di ambiente richieste:
Imposta le variabili per i dettagli del progetto Google Cloud e del cluster:
export PROJECT_ID=PROJECT_ID export CLUSTER_NAME=CLUSTER_NAME export CLUSTER_LOCATION=CLUSTER_LOCATION
Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- CLUSTER_NAME con l'ID del cluster o l'identificatore completo del cluster.
- CLUSTER_LOCATION con la regione o zona in cui si trova il cluster.
A seconda della configurazione, devi identificare il gateway Ingress che gestisce il traffico nel cluster. È importante identificare la versione di Istio effettivamente configurata e che gestisce il traffico.
Se utilizzi la versione in bundle di Istio, verifica che il nome del servizio ingress sia
istio-ingress
nello spazio dei nomigke-system
:kubectl get svc istio-ingress -n gke-system
Risultato: vengono restituiti i dettagli della configurazione.
Se hai installato il componente aggiuntivo "Istio", devi determinare quale gateway in entrata è configurato e gestisce attivamente il traffico ottenendo gli indirizzi IP dei servizi e identificando quale è configurato per il tuo dominio.
Recupera l'indirizzo
EXTERNAL-IP
per ogni servizio in entrata:Esegui questi comandi per ottenere i dettagli di configurazione dei servizi di Ingress "versione in bundle di Istio" (
istio-ingress
) e "componente aggiuntivo Istio" (istio-ingressgateway
):kubectl get svc istio-ingress -n gke-system kubectl get svc istio-ingressgateway -n istio-system
Output di esempio:
Prendi nota del valore di
EXTERNAL-IP
per ogni servizio.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingress LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP 8d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP 88d
Identifica l'indirizzo IP esterno configurato per gestire il traffico tramite il record DNS del tuo dominio personalizzato:
Vai alla pagina delle mappature di dominio di Knative serving:
Fai clic sull'icona con tre puntini verticali a destra del tuo servizio, poi fai clic su RECORD DNS per visualizzare tutti i record DNS:
Utilizzando l'esempio precedente, il gateway in entrata dell'componente aggiuntivo Istio è in uso e gestisce il traffico se la configurazione del record DNS è impostata sull'indirizzo IP
10.987.654.321
del servizioistio-ingressgateway
.
Imposta le variabili per il nome e lo spazio dei nomi del servizio Ingress che gestisce il traffico per il tuo cluster:
export INGRESS_NAME=INGRESS_NAME export INGRESS_NAMESPACE=INGRESS_NAMESPACE
Sostituisci quanto segue:
INGRESS_NAME con il nome del servizio di ingresso che hai identificato nel passaggio precedente.
INGRESS_NAMESPACE con lo spazio dei nomi del servizio di ingresso che hai identificato nel passaggio precedente.
Configura Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
Per i cluster privati:
Se hai già accesso al cluster privato dal client in cui eseguirai lo script di migrazione, puoi passare al passaggio successivo.
Se il tuo cluster privato ha
master-authorized-network
abilitato, puoi abilitare l'accesso dal client in cui eseguirai lo script di migrazione aggiungendo l'indirizzo IP del client all'allowlistmaster-authorized-networks
:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
Scarica lo script di migrazione di Knative serving:
TMP_DIR=$(mktemp -d) gcloud storage cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR cd $TMP_DIR chmod +x ./migration-addon.sh
Esegui questo comando per disattivare lo "scaling a zero", altrimenti lo scaling non andrà a buon fine e causerà errori quando il nodo master viene aggiornato:
kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
Tieni presente che il passaggio finale di questo processo di upgrade e migrazione consiste nel riattivare lo "scaling a zero".
Passaggi successivi
Disinstalla il componente aggiuntivo GKE.