Melakukan Upgrade Kf

Dokumen ini menjelaskan cara mengupgrade penginstalan Kf yang ada dan dependensinya.

Sebelum memulai

Anda memerlukan:

  • Cluster yang ada dengan Kf terinstal.
  • Akses ke komputer yang menginstal gcloud, kf, dan kubectl.

Memvalidasi penginstalan Kf yang ada

  1. Dapatkan kredensial autentikasi untuk berinteraksi dengan cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
      --zone CLUSTER_ZONE \
      --project CLUSTER_PROJECT_ID
  2. 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.0.0
      Server version:                   v1.17.13-gke.1401
      kf["app.kubernetes.io/version"]:  v2.0.0
    ...
    

    Jika nilai klien Kf dan server Kf tidak cocok, download dan instal versi Kf CLI yang cocok dengan versi server, lalu ulangi pemeriksaan dengan CLI baru. Versi CLI harus cocok dengan versi server sebelum Anda melanjutkan.

  3. 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 Error: environment failed checks, ikuti panduan dalam output doctor untuk menyelesaikan masalah dan coba lagi perintah tersebut hingga berhasil.

Upgrade

Untuk mengupgrade Kf, lakukan langkah-langkah berikut:

  • Siapkan lingkungan lokal dan upgrade.
  • Mengupgrade dependensi Kf.
  • Upgrade Kf dan verifikasi bahwa upgrade berhasil.

Menyiapkan upgrade

  1. Jalankan kf version untuk mendapatkan versi Kf saat ini.

    $ kf version
    kf version v2.0.0 linux
    
  2. Temukan Kf versi terbaru berikutnya dari halaman download.

    1. Download file YAML rilis Kf dan simpan sebagai kf-release.yaml.

    2. Download versi Kf untuk OS Anda dan beri nama kf-next.

    3. Jalankan chmod untuk membuat kf-next dapat dieksekusi:

      chmod +x kf-next
    4. Jalankan kf-next version untuk memastikan versi yang didownload cocok dengan versi Kf yang ingin Anda instal:

      $ kf-next version
      kf version v2.1.0 linux
      
  3. Buat cadangan configmap config-defaults dengan menjalankan:

    kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
  4. Jalankan kubectl diff -f kf-release.yaml dan periksa perubahan yang akan dilakukan upgrade pada cluster Anda.

  5. Edit kf-release.yaml dan ubah untuk mempertahankan perubahan yang ingin Anda pertahankan.

    Misalnya, jika Anda menetapkan properti configmap config-defaults spaceDefaultToV3Stack ke salah di v2.0.0 Kf, rilis v2.1.0 akan memiliki nilai default true.

  6. Jalankan kubectl diff -f kf-release.yaml lagi untuk memastikan perubahan yang Anda buat menghasilkan output yang diharapkan.

Mengupgrade dependensi Kf

  1. Buka halaman download dan temukan matriks dependensi untuk versi Kf yang akan Anda upgrade.

  2. Mengupgrade Tekton:

    1. Buka halaman Rilis Tekton.

    2. Temukan versi Tekton yang tercantum dalam matriks dependensi Kf.

    3. Jalankan perintah di bagian judul "Installation one-liner" untuk mengupgrade Tekton.

  3. Mengupgrade Cloud Service Mesh:

    1. Buka panduan upgrade Cloud Service Mesh.

    2. Di dropdown versi, pilih versi Cloud Service Mesh yang tercantum dalam matriks dependensi Kf.

    3. Ikuti panduan untuk mengupgrade ASM.

Mengupgrade dan memverifikasi Kf

  1. Instal komponen Kf yang diupgrade menggunakan konfigurasi rilis yang diubah:

    kubectl apply -f kf-release.yaml
  2. Jalankan doctor untuk memastikan versi yang baru diinstal berfungsi dengan baik:

    kf-next doctor --retries=12 --delay=5s

    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 output doctor untuk menyelesaikan masalah dan coba lagi perintah hingga berhasil.

  3. Ganti kf CLI yang ada di sistem Anda dengan kf-next CLI.

    chmod +x kf-next
    mv kf-next $(which kf)
  4. Bandingkan file config-defaults-backup.yaml dengan kubectl 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