Configurazione e preparazione dell'ambiente per l'upgrade

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 verificare di soddisfare i requisiti.

  • Per impostazione predefinita, Cloud Shell include le versioni più recenti dei comandi gcloud e kubectl. 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 successive
    • Versione del client kubectl 1.21 o successive

    Scopri di più sulla configurazione degli strumenti a riga di comando

  • I passaggi di preparazione descritti in questa pagina sono obbligatori durante la procedura di upgrade e migrazione.

    Importante: tutti i comandi utilizzati durante la procedura si basano sulle variabili di ambiente impostate 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

  1. Per utilizzare Cloud Shell, apri Cloud Shell nella console Google Cloud :

    Attivare Cloud Shell

    Importante: Cloud Shell ha limiti di utilizzo e può scadere. Se la sessione scade, devi assicurarti che le variabili di ambiente richieste siano reimpostate.

  2. Crea le seguenti variabili di ambiente richieste:

    1. Imposta le variabili per il progetto e i dettagli del cluster Google Cloud :

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

      Sostituisci quanto segue:

      • PROJECT_ID con l'ID del tuo progetto Google Cloud.
      • CLUSTER_NAME con l'ID del cluster o con l'identificatore completamente qualificato del cluster.
      • CLUSTER_LOCATION con la regione o la zona in cui si trova il cluster.
    2. A seconda della configurazione, devi identificare il gateway di ingresso 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 di ingresso sia istio-ingress nello spazio dei nomi gke-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 di ingresso è configurato e gestisce attivamente il traffico ottenendo gli indirizzi IP dei servizi e identificando quello configurato per il tuo dominio.

        1. Recupera l'indirizzo EXTERNAL-IP per ogni servizio in entrata:

          Esegui i seguenti comandi per ottenere i dettagli di configurazione sia dei servizi di ingresso della "versione di Istio in bundle" (istio-ingress) sia del "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
          
        2. Identifica quale indirizzo IP esterno è configurato per gestire il traffico tramite il record DNS del tuo dominio personalizzato:

          1. Vai alla pagina delle mappature dei domini di Knative serving:

            Vai a Mappature di dominio

          2. Fai clic sull'icona ellisse verticale con tre puntini a destra del servizio, quindi su DNS RECORDS (RECORD DNS) per visualizzare tutti i record DNS:

            Seleziona i record DNS

            Nell'esempio precedente, il gateway di ingresso del componente aggiuntivo Istio è in uso e serve il traffico se la configurazione del record DNS è impostata sull'indirizzo IP 10.987.654.321 del servizio istio-ingressgateway.

    3. Imposta le variabili per il nome e lo spazio dei nomi del servizio di ingresso 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 importazione che hai identificato nel passaggio precedente.

      • INGRESS_NAMESPACE con lo spazio dei nomi del servizio di ingresso che hai identificato nel passaggio precedente.

  3. Configura Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. Per i cluster privati:

    • Se hai già accesso al tuo cluster privato dal client in cui eseguire lo script di migrazione, puoi andare al passaggio successivo.

    • Se nel tuo cluster privato è attivato master-authorized-network, puoi attivare l'accesso dal client in cui eseguirai lo script di migrazione aggiungendo l'indirizzo IP del client alla lista consentita di master-authorized-network:master-authorized-networks

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. 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
    
  6. Esegui il seguente comando per disattivare il "ridimensionamento a zero", altrimenti il ridimensionamento non andrà a buon fine e causerà errori quando il nodo principale 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 il "ridimensionamento a zero".

Passaggi successivi

Disinstalla il componente aggiuntivo GKE.