Sebagai bagian dari prosedur upgrade, Anda memastikan bahwa penginstalan Kf menggunakan versi terbaru operator Kf:
- Konfirmasi versi Kf Anda saat ini yang dapat diupgrade ke Kf v2.4.1.
- Upgrade ke Kf v2.4.1.
- Mengupgrade dependensi (jika diperlukan).
Sebelum memulai
Yang Anda butuhkan:
- Cluster yang ada dengan Kf terinstal.
- Akses ke komputer dengan
gcloud
,kf
, dankubectl
terinstal.
Mempersiapkan upgrade
Menghubungkan ke cluster target
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Mengonfirmasi kecocokan Kf CLI dan versi server Anda saat ini
Jalankan kf debug
dan validasi kecocokan versi server Kf CLI dan 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.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 server 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 melakukan upgrade secara bertahap ke Kf v2.3.x untuk melanjutkan.
Konfirmasi bahwa Kf responsif 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
sampai berhasil.
Secara opsional, mencadangkan configmaps Kf jika Anda telah membuat 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 penginstalan 2.4.0, Anda hanya perlu mengupgradenya sebagai bagian dari upgrade ke 2.4.1.
Lihat Mengupgrade operator Kf.
Jika mengupgrade dari versi 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 operator yaml:
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 operator yaml:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Pilih antara menggunakan 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 tersebut guna menyiapkankfsystem.yaml
untuk upgrade secara otomatis.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 sekaligus 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 default konfigurasi dan rahasia konfigurasi 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
Upgrade Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Upgrade Anthos Service Mesh:
- Ikuti langkah-langkah dalam panduan upgrade Anthos Service Mesh 1.9.
Upgrade 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
Mengonfigurasi 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 sudah terinstal sepenuhnya sebelum melanjutkan.
Config Connector menjalankan semua komponennya dalam namespace yang 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 sudah diinstal dengan benar, output-nya akan terlihat seperti berikut:
pod/cnrm-controller-manager-0 condition met
Menyiapkan 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 sendiri.
gsutil 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 pada sistem.gsutil 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
pada instance Cloud Shell jika Anda menggunakanbash
, petunjuk mungkin perlu diubah untuk shell lainnya.mkdir -p ~/bin
gsutil 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.gsutil cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
Validasi kecocokan versi server Kf CLI dan 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, konfirmasi operator yang telah 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 responsif:kf doctor --retries=20
Perintah ini akan menjalankan pemeriksaan cluster beberapa kali. Adanya beberapa upaya yang gagal saat {i>controller<i} baru dimulai.
Jika perintah gagal dengan pesan
Error: environment failed checks
, ikuti panduan dalam outputdoctor
untuk menyelesaikan masalah dan coba lagi perintah tersebut sampai berhasil.Jika Anda telah melakukan penyesuaian pada
config-defaults
atauconfig-secrets
, pastikan keduanya dipindahkan ke:Bandingkan file
config-defaults-backup.yaml
dengankubectl diff -f config-defaults-backup.yaml
untuk memastikan cluster Anda masih dikonfigurasi dengan benar.Misalnya, jika Anda menyimpan semua perubahan dari versi Kf lama, dan menyetujui penggunaan buildpack baru yang dipaketkan dengan Kf versi 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 verifikasi lulus, cluster Anda telah berhasil diupgrade. Jika Anda mengalami masalah, tinjau halaman dukungan untuk mendapatkan panduan.