Sebagai bagian dari prosedur upgrade, Anda memastikan bahwa penginstalan Kf menggunakan operator Kf versi terbaru:
- Pastikan versi Kf Anda saat ini dapat diupgrade ke Kf v2.4.1.
- Upgrade ke Kf v2.4.1.
- Mengupgrade dependensi (jika diperlukan).
Sebelum memulai
Anda memerlukan:
- Cluster yang ada dengan Kf terinstal.
- Akses ke komputer yang menginstal
gcloud
,kf
, dankubectl
.
Mempersiapkan upgrade
Menghubungkan ke cluster target
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Pastikan versi server dan Kf CLI Anda saat ini cocok
Jalankan kf debug
dan validasikan kecocokan versi server Kf dan Kf CLI.
- 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 klien Kf dan server Kf tidak cocok, tetapi versi servernya adalah v2.3.x, instal CLI Kf v2.4.1 sebelum Anda melanjutkan.
Jika nilai server Kf lebih lama dari v2.3.x, Anda harus mengupgrade secara bertahap ke Kf v2.3.x terlebih dahulu untuk melanjutkan.
Memastikan Kf berfungsi dengan 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 menyelesaikan masalah dan coba lagi perintah tersebut
hingga berhasil.
Secara opsional, cadangkan configmap Kf jika Anda telah melakukan penyesuaian
Buat cadangan configmap
config-defaults
dengan menjalankan:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Buat cadangan configmap
config-secrets
dengan 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 sudah menginstal operator Kf sebagai bagian dari menginstal 2.4.0, Anda hanya perlu mengupgradenya sebagai bagian dari upgrade ke 2.4.1.
Lihat Mengupgrade operator Kf.
Jika 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 setelan default atau mempertahankan penyesuaian:
Siapkan
kfsystem.yaml
untuk upgrade menggunakan default:Download file
kfsystem.yaml
, isi variabel di bawah, lalu jalankan perintah di direktori yang sama dengan file untuk menyiapkankfsystem.yaml
secara 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.yaml
untuk upgrade sambil mempertahankan penyesuaian:Download file
kfsystem.yaml
.Buat cadangan configmap
config-defaults
dengan menjalankan:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Buat cadangan configmap
config-secrets
dengan menjalankan:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Periksa configmap config-defaults dan config-secrets saat ini, lalu temukan setelan yang sesuai di
kfsystem.yaml
.Salin setelan yang ada dari
config-secrets
danconfig-defaults
. Semua setelan diconfig-secrets
danconfig-defaults
dapat ditemukan dikfsystem.yaml
. KolomgoogleProjectId
kini wajib diisi.Kolom
wi.googleServiceAccount
adalah Akun Layanan lengkap diconfig-secrets
, tetapi untukkfsystem
, akhiran harus dihapus. Misalnya,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
akan menjadi${CLUSTER_NAME}-sa
dikfsystem.yaml
.Setelah setelan disalin, ubah kolom
enabled
dikfsystem
menjaditrue
.Simpan perubahan ke
kfsystem.yaml
.Konfigurasikan operator untuk Kf:
kubectl apply -f kfsystem.yaml
Mengupgrade dependensi Kf
Mengupgrade Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Mengupgrade Cloud Service Mesh:
- Ikuti langkah-langkah dalam panduan upgrade Cloud Service Mesh 1.9.
Mengupgrade Config Connector.
Download file tar Operator Config Connector yang diperlukan.
Ekstrak file tar.
tar zxvf release-bundle.tar.gz
Instal operator Config Connector di cluster Anda.
kubectl apply -f operator-system/configconnector-operator.yaml
Konfigurasikan 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 telah diinstal sepenuhnya sebelum melanjutkan.
Config Connector menjalankan semua komponennya di namespace bernama
cnrm-system
. Pastikan 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 yang berikut ini:
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 CLI Kf v2.4.1
Instal CLI:
Linux
Perintah ini menginstal Kf CLI untuk semua pengguna di sistem. Ikuti petunjuk di tab Cloud Shell untuk menginstalnya hanya untuk Anda.
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
Perintah ini menginstal
kf
untuk semua pengguna di sistem.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
Perintah ini menginstal
kf
di instance Cloud Shell Anda jika Anda menggunakanbash
, petunjuk mungkin perlu diubah untuk shell lain.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
Tindakan ini akan mendownload
kf
ke direktori saat ini. Tambahkan ke jalur jika Anda ingin memanggilnya dari mana saja selain direktori saat ini.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
Validasi kecocokan versi server Kf dan CLI Kf:
- 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, confirmasikan operator yang diinstal:
kubectl get deployment -n appdevexperience appdevexperience-operator
Jika Anda tidak melihat operator seperti dalam contoh output di bawah, tinjau langkah-langkah Menginstal operator Kf untuk pertama kalinya.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
Jalankan
doctor
untuk memastikan versi yang baru diinstal berfungsi dengan baik:kf doctor --retries=20
Perintah ini akan menjalankan pemeriksaan cluster beberapa kali. Wajar jika beberapa upaya gagal saat pengontrol baru dimulai.
Jika perintah gagal dengan pesan
Error: environment failed checks
, ikuti panduan dalam outputdoctor
untuk menyelesaikan masalah dan coba lagi perintah hingga berhasil.Jika Anda telah melakukan penyesuaian pada
config-defaults
atauconfig-secrets
, pastikan penyesuaian tersebut diterapkan:Bandingkan file
config-defaults-backup.yaml
dengankubectl diff -f config-defaults-backup.yaml
untuk memastikan cluster Anda masih dikonfigurasi dengan benar.Misalnya, jika Anda mempertahankan semua perubahan dari versi Kf lama, dan menyetujui penggunaan buildpack baru yang dipaketkan 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.