Upgrade di Kf

Questo documento descrive come eseguire l'upgrade di una Kf esistente e le sue dipendenze.

Prima di iniziare

Avrai bisogno di:

  • Un cluster esistente con Kf installato.
  • Accedi a una macchina su cui sono installati gcloud, kf e kubectl.

Convalida l'installazione esistente di Knowledge Fusion

  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 è indicata in 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 il client Kf e il server Kf i valori non corrispondono, scarica e installa la versione dell'interfaccia a riga di comando Kf che corrisponda alla versione del server, quindi ripeti il controllo con la nuova interfaccia a riga di comando. Prima di continuare, la versione del client CLI deve corrispondere alla versione del server.

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

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

    Se vedi il messaggio Error: environment failed checks, segui le indicazioni nell'output doctor per risolvere il problema e riprova a eseguire il comando fino a quando non viene eseguito correttamente.

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 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. Trova la prossima versione più recente di Kf su pagina dei download.

    1. Scarica il file YAML della release di 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 apportate dall'upgrade al cluster.

  5. Modifica kf-release.yaml e mantieni le modifiche che vuoi conservare.

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

  6. Esegui di nuovo kubectl diff -f kf-release.yaml per assicurarti che le modifiche apportate producano il risultato previsto.

Esegui l'upgrade delle dipendenze di Kf

  1. Apri la pagina dei download e individua la matrice delle dipendenze per la versione di Knowledge Fusion a cui esegui l'upgrade.

  2. Esegui l'upgrade di Tekton:

    1. Apri la pagina delle release di Tekton.

    2. Trova la versione di Tekton elencata nel Kf della matrice delle dipendenze.

    3. Esegui il comando nella sezione "Sintesi dell'installazione" 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. Nell'elenco a discesa delle versioni, scegli la versione di Cloud Service Mesh elencata nella tabella di dipendenza di 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 della release modificata:

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

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

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

    Se il comando non va a buon fine con il messaggio Error: environment failed checks, segui le indicazioni nell'output doctor per risolvere il problema e riprova a eseguire il comando finché 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 del precedente Kf e utilizzo 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