Mit dem Upgrade sorgen Sie u. a. dafür, dass für Ihre Kf-Installation die neueste Version des Kf-Operators verwendet wird:
- Bestätigen Sie, dass Ihre aktuelle Kf-Version auf Kf v2.4.1 aktualisiert werden kann.
- Führen Sie ein Upgrade auf Kf v2.4.1 durch.
- Aktualisieren Sie die Abhängigkeiten (falls erforderlich).
Hinweis
Folgendes wird benötigt:
- Einen vorhandenen Cluster, auf dem Kf installiert ist.
- Zugriff auf einen Computer, auf dem gcloud,kfundkubectlinstalliert sind.
Upgrade vorbereiten
Mit Ihrem Ziel-Cluster verbinden
gcloud container clusters get-credentials CLUSTER_NAME \
 --zone CLUSTER_ZONE \
 --project CLUSTER_PROJECT_IDPrüfen, ob die aktuelle Kf-Kommandozeile und die Serverversionen übereinstimmen
Führen Sie kf debug aus und prüfen Sie, ob die Kf-Kommandozeile und die Kf-Serverversionen übereinstimmen.
- Die CLI-Version ist unter Kf Clientaufgeführt.
- Die Kf-Serverversion ist unter kf["app.kubernetes.io/version"]aufgeführt.
$ kf debug
...
Version:
  Kf Client:                        v2.3.2
  Server version:                   v1.20.6-gke.1000
  kf["app.kubernetes.io/version"]:  v2.3.2
...
Wenn die Werte von Kf-Client und Kf-Server nicht übereinstimmen, die Serverversion aber v2.3.x ist, installieren Sie die Kf v2.4.1-Befehlszeile, bevor Sie fortfahren.
Wenn der Kf-Serverwert älter als v2.3.x ist, müssen Sie zuerst ein Upgrade auf Kf v2.3.x durchführen, um fortzufahren.
Kf auf Fehlerfreiheit vor dem Upgrade prüfen
Führen Sie kf doctor aus, um den Status des Clusters zu prüfen. Sorgen Sie dafür, dass alle Tests bestanden werden, bevor Sie fortfahren.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
   --- PASS: doctor/user/ContainerRegistry
...
Wenn Sie FAIL- oder Error: environment failed checks-Meldungen sehen, folgen Sie den Anweisungen in der kf doctor-Ausgabe oder lesen Sie die Anleitung zur Fehlerbehebung, um das Problem zu beheben und den Befehl noch einmal auszuführen, bis er erfolgreich ist.
Optionales Back-up von Kf-Configmaps, wenn Sie Anpassungen vorgenommen haben
- Erstellen Sie eine Sicherung der - config-defaults-Konfigurationskarte, indem Sie Folgendes ausführen:- kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
- Erstellen Sie eine Sicherung der - config-secrets-Konfigurationskarte, indem Sie Folgendes ausführen:- kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Kf-Operator aktualisieren
Der Kf-Operator wurde zuerst als Teil von Version 2.4.0 veröffentlicht:
- Wenn Sie den Kf-Operator bereits im Rahmen der Installation von 2.4.0 installiert haben, dann müssen Sie ihn nur beim Upgrades auf 2.4.1 aktualisieren. - Siehe Kf-Operator aktualisieren. 
- Wenn Sie ein Upgrade von 2.3.2 ausführen, müssen Sie die Version 2.4.1 des Kf-Operators installieren, um ein Upgrade auf den vom Operator verwalteten Kf-Operator durchzuführen. - Siehe Kf-Operator installieren. 
Aktuellen Kf-Operator aktualisieren
Der Kf-Operator führt Upgrades für Sie aus.
- Wenden Sie die Operator-YAML-Datei an: - kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml" 
Kf-Operator zum ersten Mal installieren
führen Sie diese Schritte aus, um auf ein vom Operator verwaltetes Kf zu aktualisieren.
- Wenden Sie die Operator-YAML-Datei an: - kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml" 
- Wählen Sie aus, ob Standardeinstellungen verwendet oder Anpassungen beibehalten werden sollen: - Bereiten Sie - kfsystem.yamlmithilfe von Standardeinstellungen für das Upgrade vor:- Laden Sie die Datei - kfsystem.yamlherunter, geben Sie die Variablen unten ein und führen Sie die Befehle im selben Verzeichnis wie die Datei aus, um- kfsystem.yamlautomatisch für das Upgrade vorzubereiten.- 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}'}}}}}]"
- Bereiten Sie - kfsystem.yamlfür das Upgrade vor, wobei die Anpassungen erhalten bleiben:
- Erstellen Sie eine Sicherung der - config-defaults-Konfigurationskarte, indem Sie Folgendes ausführen:- kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
- Erstellen Sie eine Sicherung der - config-secrets-Konfigurationskarte, indem Sie Folgendes ausführen:- kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
- Prüfen Sie die aktuellen ConfigMaps config-defaults und config-secrets, und suchen Sie die entsprechenden Einstellungen in - kfsystem.yaml.
- Kopieren Sie die vorhandenen Einstellungen aus - config-secretsund- config-defaults. Alle Einstellungen für- config-secretsund- config-defaultsfinden Sie in- kfsystem.yaml. Das Feld- googleProjectIdist jetzt erforderlich.
- Das Feld - wi.googleServiceAccountist das vollständige Dienstkonto in- config-secrets, aber für- kfsystemmuss das Suffix entfernt werden. Beispiel:- ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.comwürde in- kfsystem.yamlzu- ${CLUSTER_NAME}-sawerden.
- Nachdem die Einstellungen kopiert wurden, ändern Sie das Feld - enabledin- kfsystemauf- true.
- Speichern Sie die Änderungen in - kfsystem.yaml.
- Konfigurieren Sie den Operator für Kf: - kubectl apply -f kfsystem.yaml
 
 
Upgrade von Kf-Abhängigkeiten
- Aktualisieren Sie Tekton: - kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml" 
- Cloud Service Mesh upgraden: - Folgen Sie der Anleitung im Upgrade-Leitfaden für Cloud Service Mesh 1.9.
 
- Aktualisieren Sie Config Connector. - Laden Sie die erforderliche TAR-Datei für Config Connector-Operator herunter: 
- Extrahieren Sie die TAR-Datei: - tar zxvf release-bundle.tar.gz
- Installieren Sie den Config Connector-Operator in Ihrem Cluster: - kubectl apply -f operator-system/configconnector-operator.yaml
- Konfigurieren Sie den Config Connector-Operator, wenn Sie Config Connector zum ersten Mal installieren. - Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen - 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 
- Wenden Sie die Konfiguration auf Ihren Cluster an. - kubectl apply -f configconnector.yaml 
 
- Prüfen Sie, ob Config Connector vollständig installiert ist, bevor Sie fortfahren. - Config Connector führt alle seine Komponenten in einem Namespace mit dem Namen - cnrm-systemaus. Prüfen Sie mit dem folgenden Befehl, ob die Pods bereit sind:- kubectl wait -n cnrm-system --for=condition=Ready pod --all 
- Wenn Config Connector korrekt installiert ist, sieht die Ausgabe etwa so aus: - pod/cnrm-controller-manager-0 condition met 
 
- Richten Sie Workload Identity ein, wenn Sie Config Connector zum ersten Mal installieren. - 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
 
Upgrade auf die Kf-Befehlszeile v2.4.1
- Installieren Sie die Befehlszeile: - Linux- Mit diesem Befehl wird die Kf-Befehlszeile für alle Nutzer im System installiert. Folgen Sie der Anleitung auf dem Cloud Shell-Tab, um Kf nur für die eigene Nutzung zu installieren. - gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kf- chmod a+x /tmp/kf- sudo mv /tmp/kf /usr/local/bin/kf- Mac- Mit diesem Befehl wird - kffür alle Nutzer im System installiert.- gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kf- chmod a+x /tmp/kf- sudo mv /tmp/kf /usr/local/bin/kf- Cloud Shell- Durch diesen Befehl wird - kfauf Ihrer Cloud Shell-Instanz installiert, wenn Sie- bashverwenden. Für andere Shells muss die Anleitung möglicherweise geändert werden.- mkdir -p ~/bin- gcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kf- chmod a+x ~/bin/kf- echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc- source ~/.bashrc- Windows- Dadurch wird - kfin das aktuelle Verzeichnis heruntergeladen. Fügen Sie es dem Pfad hinzu, wenn Sie es von außerhalb des aktuellen Verzeichnisses aufrufen möchten.- gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
- Prüfen Sie, ob die Kf-Befehlszeile und die Kf-Serverversionen übereinstimmen: - Die CLI-Version ist unter Kf Clientaufgeführt.
- Die Kf-Serverversion ist unter kf["app.kubernetes.io/version"]aufgeführt.
 - $ kf debug ... Version: Kf Client: v2.4.1 Server version: v1.20.6-gke.1000 kf["app.kubernetes.io/version"]: v2.4.1 ...
- Die CLI-Version ist unter 
Prüfen, ob Kf erfolgreich aktualisiert wurde
- Wenn Sie den Kf-Operator zum ersten Mal installieren, prüfen Sie, ob der Operator installiert ist: - kubectl get deployment -n appdevexperience appdevexperience-operator- Wenn Sie den Operator nicht wie in der Beispielausgabe unten sehen, lesen Sie die Anleitung zum ersten Installieren des Kf-Operators. - NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
- Führen Sie - doctoraus, um sicherzustellen, dass die neu installierte Version fehlerfrei ist:- kf doctor --retries=20- Der Befehl führt mehrmals eine Clusterprüfung durch. Es ist ganz normal, dass einige Versuche fehlschlagen, während die neuen Controller gestartet werden. - Wenn der Befehl mit der Meldung - Error: environment failed checksfehlschlägt, befolgen Sie die Anweisungen in der Ausgabe- doctor, um das Problem zu beheben, und wiederholen Sie den Befehl, bis der Vorgang erfolgreich war.
- Wenn Sie Anpassungen an - config-defaultsoder- config-secretsvorgenommen haben, prüfen Sie, ob diese übernommen wurden:- Vergleichen Sie die Datei - config-defaults-backup.yamlmit- kubectl diff -f config-defaults-backup.yaml, damit Ihr Cluster noch ordnungsgemäß konfiguriert ist.- Wenn Sie beispielsweise alle Änderungen aus der alten Kf-Version beibehalten und ein neues Build-Paket mit der nächsten Kf-Version verwenden konnten: - $ 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
Wenn die Verifizierung ausgeführt wurde, wurde der Cluster erfolgreich aktualisiert. Wenn Sie Probleme haben, lesen Sie die Supportseite.