Penyiapan dan persiapan lingkungan untuk mengupgrade

Bersiaplah untuk mengupgrade penginstalan Knative serving sebelumnya dan memigrasikan workload Anda dengan menyiapkan lingkungan command-line, membuat variabel lingkungan, dan mendownload skrip migrasi.

Sebelum memulai

  • Anda harus meninjau dan memastikan bahwa Anda memenuhi persyaratan sebelum mengupgrade.

  • Secara default, Cloud Shell menyertakan versi terbaru perintah gcloud dan kubectl. Jika memilih menggunakan lingkungan command-line mesin lokal, Anda harus memastikan bahwa Anda memenuhi persyaratan minimum berikut:

    • gcloud versi 346.0.0 atau yang lebih baru
    • kubectl klien versi 1.21 atau yang lebih baru

    Pelajari lebih lanjut cara menyiapkan alat command-line

  • Langkah-langkah persiapan di halaman ini diperlukan selama proses upgrade dan migrasi.

    Penting: Semua perintah yang digunakan selama proses bergantung pada variabel lingkungan yang Anda tetapkan di bawah. Misalnya, jika Anda menutup Cloud Shell atau sesi Anda mengalami error karena waktu tunggu habis, Anda harus memastikan bahwa variabel lingkungan yang diperlukan direset.

Menyiapkan lingkungan

  1. Untuk menggunakan Cloud Shell, buka Cloud Shell di Google Cloud konsol:

    Aktifkan Cloud Shell

    Penting: Cloud Shell memiliki batas penggunaan dan dapat mengalami error karena waktu tunggu habis. Jika sesi Anda mengalami error karena waktu tunggu habis, Anda harus memastikan bahwa variabel lingkungan yang diperlukan direset.

  2. Buat variabel lingkungan yang diperlukan berikut:

    1. Tetapkan variabel untuk detail Google Cloud project dan cluster Anda:

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

      Ganti kode berikut:

      • PROJECT_ID dengan ID Google Cloud project Anda.
      • CLUSTER_NAME dengan ID cluster Anda atau ID yang sepenuhnya memenuhi syarat untuk cluster.
      • CLUSTER_LOCATION dengan region atau zona tempat cluster Anda berada.
    2. Bergantung pada konfigurasi Anda, Anda harus mengidentifikasi gateway ingress yang menangani traffic di cluster Anda. Penting untuk mengidentifikasi versi Istio yang sebenarnya dikonfigurasi dan melayani traffic.

      • Jika Anda menggunakan versi Istio yang dibundel, pastikan nama layanan ingress adalah istio-ingress di namespace gke-system:

        kubectl get svc istio-ingress -n gke-system
        

        Hasil: Detail konfigurasi Anda akan ditampilkan.

      • Jika Anda menginstal the "Istio add-on", Anda must menentukan which ingress gateway is configured and actively handling traffic by obtaining the IP addresses of the services and identifying which one is configured to your domain.

        1. Dapatkan alamat EXTERNAL-IP untuk setiap layanan ingress:

          Jalankan perintah berikut untuk mendapatkan detail konfigurasi layanan ingress baik "versi Istio yang dibundel" (istio-ingress) maupun "add-on Istio" (istio-ingressgateway):

          kubectl get svc istio-ingress -n gke-system
          kubectl get svc istio-ingressgateway -n istio-system
          

          Contoh output:

          Perhatikan nilai EXTERNAL-IP untuk setiap layanan.

           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                     AGE
           istio-ingress        LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP  8d
          
           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                                                     AGE
           istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP  88d
          
        2. Identifikasi alamat IP eksternal mana yang dikonfigurasi untuk menangani traffic melalui data DNS domain kustom Anda:

          1. Buka halaman pemetaan domain Knative serving:

            Buka Pemetaan domain

          2. Klik ikon elips vertikal 3 titik di sebelah kanan layanan Anda, lalu klik DATA DNS untuk menampilkan semua data DNS:

            pilih data DNS

            Dengan menggunakan contoh di atas, gateway ingress Istio add-on sedang digunakan dan melayani traffic jika konfigurasi data DNS ditetapkan ke alamat IP 10.987.654.321 dari layanan istio-ingressgateway.

    3. Tetapkan variabel untuk nama dan namespace layanan ingress yang melayani traffic untuk cluster Anda:

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

      Ganti kode berikut:

      • INGRESS_NAME dengan nama layanan ingress yang Anda identifikasi pada langkah sebelumnya.

      • INGRESS_NAMESPACE dengan namespace layanan ingress yang Anda identifikasi pada langkah sebelumnya.

  3. Konfigurasi Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. Untuk cluster pribadi:

    • Jika sudah memiliki akses ke cluster pribadi dari klien tempat Anda akan menjalankan skrip migrasi, Anda dapat langsung ke langkah berikutnya.

    • Jika cluster pribadi Anda mengaktifkan master-authorized-network, Anda dapat mengaktifkan akses dari klien tempat Anda akan menjalankan skrip migrasi dengan menambahkan alamat IP klien ke daftar yang diizinkan master-authorized-networks:

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. Download skrip migrasi Knative serving:

    TMP_DIR=$(mktemp -d)
    gcloud storage cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR
    cd $TMP_DIR
    chmod +x ./migration-addon.sh
    
  6. Jalankan perintah berikut untuk menonaktifkan "scaling to zero", jika tidak, penskalaan akan gagal dan menyebabkan error saat node master diperbarui:

    kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
    

    Perhatikan bahwa langkah terakhir dalam proses upgrade dan migrasi ini adalah mengaktifkan kembali "scaling to zero".

Langkah berikutnya

Uninstal add-on GKE.