Upgrade Kf

Dokumen ini menjelaskan cara mengupgrade penginstalan Kf yang sudah ada beserta dependensinya.

Sebelum memulai

Yang Anda butuhkan:

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

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 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.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 sampai berhasil.

Upgrade

Untuk mengupgrade Kf, lakukan langkah-langkah berikut:

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

Menyiapkan upgrade

  1. Jalankan kf version untuk mendapatkan Kf versi terbaru.

    $ kf version
    kf version v2.0.0 linux
    
  2. Temukan versi Kf 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 agar 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 dibuat oleh 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 dalam v2.0.0 dari Kf, rilis v2.1.0 akan memiliki nilai default true.

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

Mengupgrade dependensi Kf

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

  2. Upgrade Tekton:

    1. Buka halaman Rilis Tekton.

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

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

  3. Upgrade Anthos Service Mesh:

    1. Buka panduan upgrade Anthos Service Mesh.

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

    3. Ikuti panduan untuk mengupgrade ASM.

Upgrade dan verifikasi Kf

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

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

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

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

  3. Ganti CLI kf 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 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