Upgrade di Kf

Questo documento descrive come eseguire l'upgrade di un'installazione Kf esistente e delle sue dipendenze.

Prima di iniziare

Ti serviranno:

  • Un cluster esistente con Kf installato.
  • Accesso a un computer su cui sono installati gcloud, kf e kubectl.

Convalida l'installazione Kf esistente

  1. Recupera le credenziali di autenticazione per interagire con il cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
      --zone CLUSTER_ZONE \
      --project CLUSTER_PROJECT_ID
    
  2. Esegui kf debug e convalida la corrispondenza delle versioni dell'interfaccia a riga di comando Kf e del server Kf.

    • La versione dell'interfaccia a riga di comando è elencata sotto Kf Client.
    • La versione del server Kf è indicata sotto kf["app.kubernetes.io/version"].
    $ kf debug
    ...
    Version:
      Kf Client:                        v2.0.0
      Server version:                   v1.17.13-gke.1401
      kf["app.kubernetes.io/version"]:  v2.0.0
    ...
    

    Se i valori del client Kf e del server Kf non corrispondono, scarica e installa la versione dell'interfaccia a riga di comando Kf che corrisponde alla versione del server, quindi ripeti il controllo con la nuova interfaccia a riga di comando. Prima di continuare, la versione dell'interfaccia a riga di comando deve corrispondere alla versione del server.

  3. Esegui kf doctor per controllare lo stato del cluster. Prima di continuare, assicurati che tutti i test siano stati superati.

    $ kf doctor
    ...
    === RUN doctor/user
    === RUN doctor/user/ContainerRegistry
    --- PASS: doctor/user
       --- PASS: doctor/user/ContainerRegistry
    ...
    

    Se viene visualizzato il messaggio Error: environment failed checks, segui le linee guida nell'output doctor per risolvere il problema e riprova a utilizzare il comando finché l'operazione non riesce.

Esegui l'upgrade

Per eseguire l'upgrade di Kf, procedi nel seguente modo:

  • Preparare l'ambiente locale e l'upgrade.
  • Esegui l'upgrade delle dipendenze di Kf.
  • Esegui l'upgrade di Kf e verifica che l'upgrade sia riuscito.

Prepara l'upgrade

  1. Esegui kf version per ottenere la versione corrente di Kf.

    $ kf version
    kf version v2.0.0 linux
    
  2. Puoi trovare la versione più recente di Kf nella pagina dei download.

    1. Scarica il file YAML della release Kf e salvalo come kf-release.yaml.

    2. Scarica la versione di Kf per il tuo sistema operativo e assegnale il nome kf-next.

    3. Esegui chmod per rendere eseguibile kf-next:

      chmod +x kf-next
      
    4. Esegui kf-next version per assicurarti che la versione scaricata corrisponda alla versione di Kf che vuoi installare:

      $ kf-next version
      kf version v2.1.0 linux
      
  3. Esegui un backup della configmap config-defaults eseguendo:

    kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
    
  4. Esegui kubectl diff -f kf-release.yaml e controlla le modifiche che l'upgrade apporterebbe al tuo cluster.

  5. Modifica kf-release.yaml e cambialo per mantenere le modifiche che vuoi mantenere.

    Ad esempio, se imposti la proprietà config-defaults configmap spaceDefaultToV3Stack su false in v2.0.0 di Kf, la release v2.1.0 avrà il valore predefinito di true.

  6. Esegui di nuovo kubectl diff -f kf-release.yaml per assicurarti che eventuali modifiche apportate producano l'output previsto.

Esegui l'upgrade delle dipendenze Kf

  1. Apri la pagina dei download e trova la matrice delle dipendenze per la versione di Kf a cui stai eseguendo l'upgrade.

  2. Esegui l'upgrade di Tekton:

    1. Apri la pagina della release Tekton.

    2. La versione di Tekton è elencata nella matrice di dipendenza Kf.

    3. Esegui il comando sotto l'intestazione "Installazione sintetica" per eseguire l'upgrade di Tekton.

  3. Esegui l'upgrade di Anthos Service Mesh:

    1. Apri la guida all'upgrade di Anthos Service Mesh.

    2. Nel menu a discesa della versione, scegli la versione di Anthos Service Mesh elencata nella matrice delle dipendenze Kf.

    3. Segui la guida per eseguire l'upgrade di ASM.

Esegui l'upgrade e verifica Kf

  1. Installa i componenti Kf di cui è stato eseguito l'upgrade utilizzando la configurazione di release modificata:

    kubectl apply -f kf-release.yaml
    
  2. Esegui doctor per assicurarti che la versione appena installata sia integro:

    kf-next doctor --retries=12 --delay=5s
    

    Il comando eseguirà più volte i controlli del cluster. È normale che alcuni tentativi non vadano a buon fine durante l'avvio dei nuovi controller.

    Se il comando non riesce e viene visualizzato il messaggio Error: environment failed checks, segui le indicazioni nell'output doctor per risolvere il problema e riprova a utilizzare il comando finché l'operazione non va a buon fine.

  3. Sostituisci l'interfaccia a riga di comando kf esistente sul tuo sistema con l'interfaccia a riga di comando kf-next.

    chmod +x kf-next
    mv kf-next $(which kf)
    
  4. Confronta il file config-defaults-backup.yaml con kubectl diff -f config-defaults-backup.yaml per assicurarti che il cluster sia ancora configurato correttamente.

    Ad esempio, se hai mantenuto tutte le modifiche dalla vecchia versione di Kf e approvato l'utilizzo di un nuovo buildpack in bundle con la versione successiva di Kf:

    $ kubectl diff -f config-defaults-backup.yaml
    diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults
    +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    @@ -131,6 +131,8 @@
         enable_route_services: false
       spaceBuildpacksV2: |
    -    - name: new_buildpack
    -      url: https://github.com/cloudfoundry/new-buildpack
         - name: staticfile_buildpack
           url: https://github.com/cloudfoundry/staticfile-buildpack
         - name: java_buildpack
    exit status 1