Bersiaplah untuk mengupgrade penginstalan penayangan Knative Anda sebelumnya dan migrasi workload Anda dengan menyiapkan lingkungan command line, membuat lingkungan variabel, dan mendownload skrip migrasi.
Sebelum memulai
Anda harus terlebih dahulu meninjau dan memastikan bahwa Anda memenuhi persyaratan sebelum mengupgrade.
Secara default, Cloud Shell menyertakan versi terbaru dari
gcloud
dan perintahkubectl
. Jika Anda memilih untuk menggunakan lingkungan baris perintah {i>command<i} komputer lokal, Anda harus memastikan bahwa Anda memenuhi persyaratan minimum persyaratan:gcloud
versi 346.0.0 atau yang lebih baru- Klien
kubectl
versi 1.21 atau yang lebih baru
Langkah-langkah persiapan di halaman ini diperlukan dalam seluruh proses upgrade dan migrasi.
Penting: Semua perintah yang digunakan selama proses ini bergantung pada variabel lingkungan yang Anda tetapkan di bawah ini. Misalnya, jika Anda menutup Cloud Shell atau waktu tunggu sesi, Anda harus memastikan bahwa persyaratan variabel lingkungan direset.
Menyiapkan lingkungan Anda
Untuk menggunakan Cloud Shell, buka Cloud Shell di Konsol Google Cloud:
Penting: Cloud Shell memiliki batas penggunaan dan dapat habis waktu tunggunya. Jika waktu tunggu sesi, Anda harus memastikan bahwa variabel lingkungan yang diperlukan direset.
Buat variabel lingkungan yang diperlukan berikut ini:
Tetapkan variabel untuk detail cluster dan project Google Cloud 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 Anda proyek.
- CLUSTER_NAME dengan ID cluster Anda atau ID cluster yang memenuhi syarat untuk cluster tersebut.
- CLUSTER_LOCATION dengan region atau zona tempat properti cluster Anda berada.
Bergantung pada konfigurasi, Anda harus mengidentifikasi gateway masuk yang menangani traffic di cluster Anda. Penting untuk mengidentifikasi versi Istio mana yang benar-benar dikonfigurasi dan menyajikan traffic.
Jika Anda menggunakan versi paket Istio, pastikan traffic masuk nama layanan adalah
istio-ingress
dalam namespacegke-system
:kubectl get svc istio-ingress -n gke-system
Hasil: Detail konfigurasi Anda ditampilkan.
Jika Anda telah menginstal "Add-on Istio", Anda harus menentukan gateway masuk mana yang dikonfigurasi dan menangani secara aktif traffic dengan mendapatkan alamat IP layanan dan mengidentifikasi mana yang dikonfigurasi ke domain Anda.
Dapatkan alamat
EXTERNAL-IP
untuk tiap layanan masuk:Jalankan perintah berikut untuk mendapatkan detail konfigurasi dari baik berupa "versi paket Istio" (
istio-ingress
) dan "Add-on Istio" (istio-ingressgateway
) layanan masuk: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
Mengidentifikasi alamat IP eksternal yang dikonfigurasi untuk menangani traffic melalui data DNS domain kustom Anda:
Buka halaman pemetaan domain penayangan Knative:
Klik ikon elips vertikal 3 titik di sebelah kanan layanan DNS, lalu klik DNS RECORDS untuk menampilkan semua DNS data:
Menggunakan contoh di atas, gateway masuk Add-on Istio merupakan digunakan dan melayani lalu lintas data jika konfigurasi catatan DNS disetel ke alamat IP
10.987.654.321
dari Layananistio-ingressgateway
.
Tetapkan variabel untuk nama dan namespace layanan masuk yang yang menyalurkan traffic untuk cluster Anda:
export INGRESS_NAME=INGRESS_NAME export INGRESS_NAMESPACE=INGRESS_NAMESPACE
Ganti kode berikut:
INGRESS_NAME dengan nama layanan masuk yang yang Anda identifikasi pada langkah sebelumnya.
INGRESS_NAMESPACE dengan namespace traffic masuk layanan yang Anda identifikasi pada langkah sebelumnya.
Konfigurasikan Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
Untuk cluster pribadi:
Jika Anda sudah memiliki akses ke cluster pribadi dari klien tempat Anda akan menjalankan skrip migrasi. Anda dapat langsung menuju langkah selanjutnya.
Jika cluster pribadi telah mengaktifkan
master-authorized-network
, Anda dapat mengaktifkan akses dari klien tempat Anda akan menjalankan skrip migrasi menambahkan alamat IP klien kemaster-authorized-networks
daftar yang disetujui:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
Download skrip migrasi penayangan Knative:
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
Jalankan perintah berikut untuk menonaktifkan "penskalaan ke nol", jika tidak penskalaan akan gagal dan menyebabkan error saat node master diupdate:
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 aktifkan kembali "penskalaan ke nol".