Prima di iniziare
Avrai bisogno di:
- Un cluster esistente con Kf installato.
- Accedi a una macchina su cui sono installati
gcloud
,kf
ekubectl
.
Convalida l'installazione esistente di Knowledge Fusion
Recupera le credenziali di autenticazione per interagire con il cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_ZONE \ --project CLUSTER_PROJECT_ID
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 in
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. Prima di continuare, la versione del client deve corrispondere alla versione del server.
- La versione dell'interfaccia a riga di comando è indicata in
Esegui
kf doctor
per controllare 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 visualizzi il messaggio
Error: environment failed checks
, segui le indicazioni nell'outputdoctor
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, svolgi i seguenti 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.
Preparare l'upgrade
Esegui
kf version
per ottenere la versione corrente di Kf.$ kf version kf version v2.0.0 linux
Trova la versione successiva di Kf dalla pagina dei download.
Scarica il file YAML della release di Kf e salvalo come
kf-release.yaml
.Scarica la versione di Kf per il tuo sistema operativo e assegnale il nome
kf-next
.Esegui
chmod
per rendere eseguibilekf-next
:chmod +x kf-next
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
Esegui un backup del configmap
config-defaults
eseguendo:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Esegui
kubectl diff -f kf-release.yaml
e controlla le modifiche apportate dall'upgrade al cluster.Modifica
kf-release.yaml
e mantieni le modifiche che vuoi conservare.Ad esempio, se imposti la proprietà configmap
config-defaults
spaceDefaultToV3Stack
su false inv2.0.0
di Kf, la releasev2.1.0
avrà il valore predefinitotrue
.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
Apri la pagina dei download e individua la matrice delle dipendenze per la versione di Knowledge Fusion a cui esegui l'upgrade.
Esegui l'upgrade di Tekton:
Apri la pagina delle release di Tekton.
Trova la versione di Tekton elencata nella matrice di dipendenza di Kf.
Esegui il comando riportato nella sezione "Comando di installazione in una riga" per eseguire l'upgrade di Tekton.
Esegui l'upgrade di Cloud Service Mesh:
Nell'elenco a discesa delle versioni, scegli la versione di Cloud Service Mesh elencata nella tabella di dipendenza di Kf.
Segui la guida per eseguire l'upgrade di ASM.
Esegui l'upgrade e verifica Kf
Installa i componenti Kf di cui è stato eseguito l'upgrade utilizzando la configurazione della release modificata:
kubectl apply -f kf-release.yaml
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'outputdoctor
per risolvere il problema e riprova a eseguire il comando finché non va a buon fine.Sostituisci l'interfaccia a riga di comando
kf
esistente sul tuo sistema con l'interfaccia a riga di comandokf-next
.chmod +x kf-next
mv kf-next $(which kf)
Confronta il file
config-defaults-backup.yaml
conkubectl 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 di Kf e hai 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