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 di Kf esistente

  1. Ottieni 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 corrispondente alla versione del server, quindi ripeti il controllo con la nuova interfaccia a riga di comando. La versione dell'interfaccia a riga di comando deve corrispondere alla versione del server prima di continuare.

  3. Esegui kf doctor per verificare lo stato del cluster. Assicurati che tutti i test superino prima di continuare.

    $ 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 indicazioni nell'output doctor per risolvere il problema e riprova a eseguire il comando finché l'operazione non riesce.

Esegui l'upgrade

Per eseguire l'upgrade di Kf, segui questi passaggi:

  • Prepara l'ambiente locale e l'upgrade.
  • Esegui l'upgrade delle dipendenze di Kf.
  • Esegui l'upgrade di Kf e verifica che l'upgrade sia andato a buon fine.

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 modificalo per conservare tutte le modifiche che vuoi mantenere.

    Ad esempio, se imposti la proprietà configmap config-defaults 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 qualsiasi modifica apportata produca l'output previsto.

Esegui l'upgrade delle dipendenze Kf

  1. Apri la pagina dei download e individua 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 Release di Tekton.

    2. Individua la versione di Tekton elencata nella matrice di dipendenza Kf.

    3. Esegui il comando sotto l'intestazione "Installation one-liner" per eseguire l'upgrade di Tekton.

  3. Esegui l'upgrade di Cloud Service Mesh:

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

    2. Nel menu a discesa della versione, scegli la versione di Cloud 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 aggiornati 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 restituisce il messaggio Error: environment failed checks, segui le indicazioni nell'output doctor per risolvere il problema e riprova a eseguire il comando finché non riesce.

  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 della vecchia versione Kf e hai mantenuto l'uso approvato 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