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
,kf
undkubectl
installiert sind.
Upgrade vorbereiten
Mit Ihrem Ziel-Cluster verbinden
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Prü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 Client
aufgefü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.yaml
mithilfe von Standardeinstellungen für das Upgrade vor:Laden Sie die Datei
kfsystem.yaml
herunter, geben Sie die Variablen unten ein und führen Sie die Befehle im selben Verzeichnis wie die Datei aus, umkfsystem.yaml
automatisch 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.yaml
fü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-secrets
undconfig-defaults
. Alle Einstellungen fürconfig-secrets
undconfig-defaults
finden Sie inkfsystem.yaml
. Das FeldgoogleProjectId
ist jetzt erforderlich.Das Feld
wi.googleServiceAccount
ist das vollständige Dienstkonto inconfig-secrets
, aber fürkfsystem
muss das Suffix entfernt werden. Beispiel:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
würde inkfsystem.yaml
zu${CLUSTER_NAME}-sa
werden.Nachdem die Einstellungen kopiert wurden, ändern Sie das Feld
enabled
inkfsystem
auftrue
.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-system
aus. 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
kf
fü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
kf
auf Ihrer Cloud Shell-Instanz installiert, wenn Siebash
verwenden. 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
kf
in 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 Client
aufgefü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
doctor
aus, 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 checks
fehlschlägt, befolgen Sie die Anweisungen in der Ausgabedoctor
, um das Problem zu beheben, und wiederholen Sie den Befehl, bis der Vorgang erfolgreich war.Wenn Sie Anpassungen an
config-defaults
oderconfig-secrets
vorgenommen haben, prüfen Sie, ob diese übernommen wurden:Vergleichen Sie die Datei
config-defaults-backup.yaml
mitkubectl 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.