Sebagai bagian dari prosedur upgrade, Anda harus memastikan bahwa penginstalan Kf menggunakan operator Kf versi terbaru:
- Konfirmasi bahwa versi Kf Anda saat ini dapat diupgrade ke Kf v2.4.1.
- Upgrade ke Kf v2.4.1.
- Upgrade dependensi (jika diperlukan).
Sebelum memulai
Anda akan memerlukan:
- Cluster yang ada dengan Kf terinstal.
- Akses ke mesin dengan
gcloud,kf, dankubectlterinstal.
Mempersiapkan upgrade
Menghubungkan ke cluster target
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_IDMengonfirmasi bahwa versi server dan Kf CLI Anda saat ini cocok
Jalankan kf debug dan validasi bahwa versi server Kf dan Kf CLI cocok.
- Versi CLI tercantum di bagian
Kf Client. - Versi server Kf tercantum di bagian
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
...
Jika nilai server Kf dan klien Kf tidak cocok, tetapi versi servernya adalah v2.3.x, instal Kf v2.4.1 CLI sebelum Anda melanjutkan.
Jika nilai server Kf lebih lama dari v2.3.x, Anda harus mengupgrade ke Kf v2.3.x secara bertahap terlebih dahulu untuk melanjutkan.
Mengonfirmasi bahwa Kf dalam kondisi baik sebelum mengupgrade
Jalankan kf doctor untuk memeriksa status cluster Anda. Pastikan semua pengujian lulus sebelum Anda melanjutkan.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
Jika Anda melihat pesan FAIL atau Error: environment failed checks, ikuti
panduan dalam output kf doctor, atau lihat panduan pemecahan masalah untuk mengatasi masalah tersebut dan coba lagi perintah
hingga berhasil.
Opsional: mencadangkan configmap Kf jika Anda telah melakukan penyesuaian
Buat cadangan configmap
config-defaultsdengan menjalankan:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlBuat cadangan configmap
config-secretsdengan menjalankan:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Mengupgrade operator Kf
Operator Kf pertama kali dirilis sebagai bagian dari versi 2.4.0:
Jika Anda telah menginstal operator Kf sebagai bagian dari penginstalan 2.4.0, Anda hanya perlu mengupgradenya sebagai bagian dari upgrade ke 2.4.1.
Lihat Mengupgrade operator Kf.
Jika Anda mengupgrade dari 2.3.2, Anda harus menginstal operator Kf versi 2.4.1 untuk mengupgrade ke Kf yang dikelola operator.
Lihat Menginstal operator Kf.
Mengupgrade operator Kf saat ini
Operator Kf melakukan upgrade untuk Anda.
Terapkan yaml operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Menginstal operator Kf untuk pertama kalinya
Lakukan langkah-langkah berikut untuk mengupgrade ke Kf yang dikelola operator.
Terapkan yaml operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Pilih antara menggunakan nilai default atau mempertahankan penyesuaian:
Siapkan
kfsystem.yamluntuk upgrade menggunakan nilai default:Unduh file
kfsystem.yaml, isi variabel di bawah, lalu jalankan perintah di direktori yang sama dengan file untuk menyiapkankfsystem.yamlsecara otomatis untuk 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}'}}}}}]"Siapkan
kfsystem.yamluntuk upgrade sambil mempertahankan penyesuaian:Download file
kfsystem.yaml.Buat cadangan configmap
config-defaultsdengan menjalankan:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlBuat cadangan configmap
config-secretsdengan menjalankan:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yamlPeriksa configmap config-defaults dan config-secrets saat ini, lalu temukan setelan yang sesuai di
kfsystem.yaml.Salin setelan yang ada dari
config-secretsdanconfig-defaults. Semua setelan diconfig-secretsdanconfig-defaultsdapat ditemukan dikfsystem.yaml. KolomgoogleProjectIdkini wajib diisi.Kolom
wi.googleServiceAccountadalah Akun Layanan lengkap diconfig-secrets, tetapi untukkfsystem, akhiran harus dihapus. Misalnya,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.comakan menjadi${CLUSTER_NAME}-sadikfsystem.yaml.Setelah setelan disalin, ubah kolom
enableddikfsystemmenjaditrue.Simpan perubahan Anda ke
kfsystem.yaml.Konfigurasikan operator untuk Kf:
kubectl apply -f kfsystem.yaml
Mengupgrade dependensi Kf
Upgrade Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Upgrade Cloud Service Mesh:
- Ikuti langkah-langkah dalam panduan upgrade Cloud Service Mesh 1.9.
Upgrade Config Connector.
Download file tar Config Connector Operator yang diperlukan.
Ekstrak file tar.
tar zxvf release-bundle.tar.gzInstal operator Config Connector di cluster Anda.
kubectl apply -f operator-system/configconnector-operator.yamlKonfigurasikan operator Config Connector jika menginstal Config Connector untuk pertama kalinya.
Salin YAML berikut ke dalam file bernama
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
Terapkan konfigurasi ke cluster Anda.
kubectl apply -f configconnector.yaml
Pastikan Config Connector terinstal sepenuhnya sebelum melanjutkan.
Config Connector menjalankan semua komponennya dalam namespace bernama
cnrm-system. Verifikasi bahwa Pod sudah siap dengan menjalankan perintah berikut:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Jika Config Connector diinstal dengan benar, outputnya akan mirip dengan berikut:
pod/cnrm-controller-manager-0 condition met
Siapkan Workload Identity jika menginstal Config Connector untuk pertama kalinya.
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
Mengupgrade ke Kf v2.4.1 CLI
Instal CLI:
Linux
Perintah ini menginstal Kf CLI untuk semua pengguna di sistem. Ikuti petunjuk di tab Cloud Shell untuk menginstalnya hanya untuk Anda sendiri.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfMac
Perintah ini menginstal
kfuntuk semua pengguna di sistem.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
Perintah ini menginstal
kfdi instance Cloud Shell Anda jika Anda menggunakanbash. Petunjuknya mungkin perlu diubah untuk shell lain.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
Tindakan ini akan mendownload
kfke direktori saat ini. Tambahkan ke jalur jika Anda ingin memanggilnya dari mana saja selain dari direktori saat ini.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exeValidasi bahwa versi server Kf dan Kf CLI cocok:
- Versi CLI tercantum di bagian
Kf Client. - Versi server Kf tercantum di bagian
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 ...- Versi CLI tercantum di bagian
Memverifikasi bahwa Kf berhasil diupgrade
Jika menginstal operator Kf untuk pertama kalinya, konfirmasi bahwa operator telah diinstal:
kubectl get deployment -n appdevexperience appdevexperience-operatorJika Anda tidak melihat operator seperti dalam output contoh di bawah, tinjau langkah-langkah Menginstal operator Kf untuk pertama kalinya.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1hJalankan
doctoruntuk memastikan versi yang baru diinstal dalam kondisi baik:kf doctor --retries=20Perintah ini akan menjalankan pemeriksaan cluster beberapa kali. Beberapa upaya akan gagal saat pengontrol baru dimulai.
Jika perintah gagal dengan pesan
Error: environment failed checks, ikuti panduan dalam outputdoctoruntuk mengatasi masalah tersebut dan coba lagi perintah hingga berhasil.Jika Anda telah melakukan penyesuaian pada
config-defaultsatauconfig-secrets, verifikasi bahwa penyesuaian tersebut telah diterapkan:Bandingkan file
config-defaults-backup.yamldengankubectl diff -f config-defaults-backup.yamluntuk memastikan cluster Anda masih dikonfigurasi dengan benar.Misalnya, jika Anda mempertahankan semua perubahan dari versi Kf lama, dan menyetujui penggunaan buildpack baru yang disertakan dengan versi Kf berikutnya:
$ 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
Jika langkah-langkah verifikasi berhasil, cluster Anda telah berhasil diupgrade. Jika Anda mengalami masalah, tinjau halaman dukungan untuk mendapatkan panduan.