Prima di iniziare
Ti serviranno:
- Un cluster esistente con Kf installato.
- Accesso a un computer su cui sono installati
gcloud
,kf
ekubectl
.
Convalida l'installazione Kf esistente
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 è 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.
- La versione dell'interfaccia a riga di comando è elencata sotto
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'outputdoctor
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
Esegui
kf version
per ottenere la versione corrente di Kf.$ kf version kf version v2.0.0 linux
Puoi trovare la versione più recente di Kf nella pagina dei download.
Scarica il file YAML della release 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 della 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 che l'upgrade apporterebbe al tuo cluster.Modifica
kf-release.yaml
e cambialo per mantenere le modifiche che vuoi mantenere.Ad esempio, se imposti la proprietà
config-defaults
configmapspaceDefaultToV3Stack
su false inv2.0.0
di Kf, la releasev2.1.0
avrà il valore predefinito ditrue
.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
Apri la pagina dei download e trova la matrice delle dipendenze per la versione di Kf a cui stai eseguendo l'upgrade.
Esegui l'upgrade di Tekton:
Apri la pagina della release Tekton.
La versione di Tekton è elencata nella matrice di dipendenza Kf.
Esegui il comando sotto l'intestazione "Installazione sintetica" per eseguire l'upgrade di Tekton.
Esegui l'upgrade di Anthos Service Mesh:
Nel menu a discesa della versione, scegli la versione di Anthos Service Mesh elencata nella matrice delle dipendenze 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 di release modificata:
kubectl apply -f kf-release.yaml
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'outputdoctor
per risolvere il problema e riprova a utilizzare il comando finché l'operazione 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 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