Nell'ambito della procedura di upgrade, assicurati che l'installazione di Kf utilizzi l'ultima versione dell'operatore Kf:
- Verifica che la tua versione attuale di Kf possa essere aggiornata a Kf v2.4.1.
- Esegui l'upgrade a Kf v2.4.1.
- Esegui l'upgrade delle dipendenze (se necessario).
Prima di iniziare
Ti serviranno:
- Un cluster esistente con Kf installato.
- Accesso a una macchina con
gcloud,kfekubectlinstallati.
Preparazione dell'upgrade in corso…
Connettiti al cluster di destinazione
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_IDConferma che le versioni attuali di Kf CLI e del server corrispondano
Esegui kf debug e verifica che le versioni dell'interfaccia a riga di comando Kf e del server Kf corrispondano.
- La versione della CLI è elencata in
Kf Client. - La versione del server Kf è elencata in
kf["app.kubernetes.io/version"].
$ kf debug
...
Version:
Kf Client: v2.3.2
Server version: v1.20.6-gke.1000
kf["app.kubernetes.io/version"]: v2.3.2
...
Se i valori del client Kf e del server Kf non corrispondono, ma la versione del server è v2.3.x, installa la CLI Kf v2.4.1 prima di continuare.
Se il valore del server Kf è precedente alla versione 2.3.x, devi prima eseguire l'upgrade incrementale a Kf v2.3.x per continuare.
Conferma che Kf sia integro prima di eseguire l'upgrade
Esegui kf doctor per controllare lo stato del cluster. Prima di continuare, assicurati che tutti i test vengano superati.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
Se visualizzi messaggi FAIL o Error: environment failed checks, segui le
indicazioni nell'output kf doctor o consulta la guida alla risoluzione dei problemi per risolvere il problema e riprova il comando
finché non viene eseguito correttamente.
(Facoltativo) Esegui il backup dei configmap di Kf se hai apportato personalizzazioni
Esegui il backup della configmap
config-defaultseseguendo:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlEsegui il backup della configmap
config-secretseseguendo:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Esegui l'upgrade dell'operatore Kf
L'operatore Kf è stato rilasciato per la prima volta nella versione 2.4.0:
Se hai già installato l'operatore Kf nell'ambito dell'installazione della versione 2.4.0, devi solo eseguire l'upgrade nell'ambito dell'upgrade alla versione 2.4.1.
Consulta Eseguire l'upgrade dell'operatore Kf.
Se esegui l'upgrade dalla versione 2.3.2, devi installare la versione 2.4.1 dell'operatore Kf per eseguire l'upgrade a Kf gestito dall'operatore.
Consulta Installare l'operatore Kf.
Esegui l'upgrade dell'operatore Kf attuale
L'operatore Kf esegue gli upgrade per te.
Applica il file yaml dell'operatore:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Installare l'operatore Kf per la prima volta
Per eseguire l'upgrade a Kf gestito dall'operatore, segui questi passaggi.
Applica il file yaml dell'operatore:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Scegli se utilizzare le impostazioni predefinite o conservare le personalizzazioni:
Prepara
kfsystem.yamlper l'upgrade utilizzando le impostazioni predefinite:Scarica il file
kfsystem.yaml, compila le variabili riportate di seguito, quindi esegui i comandi nella stessa directory del file per preparare automaticamentekfsystem.yamlper l'upgrade.export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=YOUR_CLUSTER_NAME export CONTAINER_REGISTRY=YOUR_CLUSTER_COMPUTE_REGION-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME} kubectl apply -f kfsystem.yaml kubectl patch \ kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry': '${CONTAINER_REGISTRY}', 'secrets':{'workloadidentity':{'googleserviceaccount':'${CLUSTER_NAME}-sa', 'googleprojectid':'${CLUSTER_PROJECT_ID}'}}}}}]"Prepara
kfsystem.yamlper l'upgrade preservando le personalizzazioni:Scarica il file
kfsystem.yaml.Esegui il backup della configmap
config-defaultseseguendo:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlEsegui il backup della configmap
config-secretseseguendo:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yamlIspeziona i configmap config-defaults e config-secrets correnti e trova le impostazioni corrispondenti in
kfsystem.yaml.Copia le impostazioni esistenti da
config-secretseconfig-defaults. Tutte le impostazioni inconfig-secretseconfig-defaultssono disponibili inkfsystem.yaml. Il campogoogleProjectIdora è obbligatorio.Il campo
wi.googleServiceAccountè il service account completo inconfig-secrets, ma perkfsystemil suffisso deve essere rimosso. Ad esempio,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.comdiventerebbe${CLUSTER_NAME}-sainkfsystem.yaml.Dopo aver copiato le impostazioni, modifica il campo
enabledinkfsystemintrue.Salva le modifiche apportate a
kfsystem.yaml.Configura l'operatore per Kf:
kubectl apply -f kfsystem.yaml
Esegui l'upgrade delle dipendenze di Kf
Esegui l'upgrade di Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Esegui l'upgrade di Cloud Service Mesh:
- Segui i passaggi descritti nella guida all'upgrade di Cloud Service Mesh 1.9.
Esegui l'upgrade di Config Connector.
Scarica il file tar dell'operatore Config Connector richiesto.
Estrai il file tar.
tar zxvf release-bundle.tar.gzInstalla l'operatore Config Connector sul cluster.
kubectl apply -f operator-system/configconnector-operator.yamlConfigura l'operatore Config Connector se installi Config Connector per la prima volta.
Copia il seguente codice YAML in un file denominato
configconnector.yaml:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "KF_SERVICE_ACCOUNT_NAME" # Replace with the full service account resolved from ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Applica la configurazione al cluster.
kubectl apply -f configconnector.yaml
Verifica che Config Connector sia completamente installato prima di continuare.
Config Connector esegue tutti i suoi componenti in uno spazio dei nomi denominato
cnrm-system. Verifica che i pod siano pronti eseguendo questo comando:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Se Config Connector è installato correttamente, l'output è simile al seguente:
pod/cnrm-controller-manager-0 condition met
Configura Workload Identity se installi Config Connector per la prima volta.
kubectl annotate serviceaccount \ --namespace cnrm-system \ --overwrite \ cnrm-controller-manager \ iam.gke.io/gcp-service-account=${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Esegui l'upgrade all'interfaccia a riga di comando Kf v2.4.1
Installa l'interfaccia a riga di comando:
Linux
Questo comando installa la CLI Kf per tutti gli utenti del sistema. Segui le istruzioni nella scheda Cloud Shell per installarlo solo per te.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfMac
Questo comando installa
kfper tutti gli utenti del sistema.gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfCloud Shell
Questo comando installa
kfsull'istanza Cloud Shell se utilizzibash, le istruzioni potrebbero dover essere modificate per altre shell.mkdir -p ~/bingcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kfchmod a+x ~/bin/kfecho "export PATH=$HOME/bin:$PATH" >> ~/.bashrcsource ~/.bashrcWindows
Viene scaricato
kfnella directory corrente. Aggiungilo al percorso se vuoi chiamarlo da una posizione diversa dalla directory corrente.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exeConvalida che le versioni dell'interfaccia a riga di comando Kf e del server Kf corrispondano:
- La versione della CLI è elencata in
Kf Client. - La versione del server Kf è elencata in
kf["app.kubernetes.io/version"].
$ kf debug ... Version: Kf Client: v2.4.1 Server version: v1.20.6-gke.1000 kf["app.kubernetes.io/version"]: v2.4.1 ...- La versione della CLI è elencata in
Verifica che l'upgrade di Kf sia andato a buon fine
Se installi l'operatore Kf per la prima volta, conferma l'installazione dell'operatore:
kubectl get deployment -n appdevexperience appdevexperience-operatorSe non vedi l'operatore come nell'output di esempio riportato di seguito, rivedi i passaggi per installare l'operatore Kf per la prima volta.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1hEsegui
doctorper assicurarti che la versione appena installata sia integra:kf doctor --retries=20Il 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 e viene visualizzato il messaggio
Error: environment failed checks, segui le indicazioni nell'output didoctorper risolvere il problema e riprova a eseguire il comando finché non va a buon fine.Se hai apportato personalizzazioni a
config-defaultsoconfig-secrets, verifica che siano state trasferite:Confronta il file
config-defaults-backup.yamlconkubectl diff -f config-defaults-backup.yamlper assicurarti che il cluster sia ancora configurato correttamente.Ad esempio, se hai mantenuto tutte le modifiche della tua vecchia versione di Kf e hai approvato l'utilizzo di un nuovo buildpack incluso nella 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
Se i passaggi di verifica vanno a buon fine, l'upgrade del cluster è stato eseguito correttamente. In caso di problemi, consulta la pagina di assistenza per ricevere indicazioni.