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 perintah
gcloud
dankubectl
versi terbaru. Jika memilih untuk menggunakan lingkungan command line di mesin lokal, Anda harus memastikan bahwa Anda memenuhi persyaratan minimum berikut: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 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 berakhir, Anda harus memastikan bahwa variabel lingkungan yang diperlukan direset.
Menyiapkan lingkungan Anda
Untuk menggunakan Cloud Shell, buka Cloud Shell di konsol Google Cloud :
Penting: Cloud Shell memiliki batas penggunaan dan dapat mengalami waktu tunggu. Jika sesi Anda berakhir, Anda harus memastikan bahwa variabel lingkungan yang diperlukan direset.
Buat variabel lingkungan wajib berikut:
Tetapkan variabel untuk detail project dan cluster Google Cloud :
export PROJECT_ID=PROJECT_ID export CLUSTER_NAME=CLUSTER_NAME export CLUSTER_LOCATION=CLUSTER_LOCATION
Ganti kode berikut:
- PROJECT_ID dengan ID project Google Cloud 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.
Bergantung pada konfigurasi, 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 Istio versi paket, pastikan nama layanan ingress adalah
istio-ingress
di namespacegke-system
:kubectl get svc istio-ingress -n gke-system
Hasil: Detail konfigurasi Anda akan ditampilkan.
Jika Anda menginstal "Add-on Istio", Anda harus menentukan gateway ingress mana yang dikonfigurasi dan secara aktif menangani traffic dengan mendapatkan alamat IP layanan dan mengidentifikasi layanan mana yang dikonfigurasi ke domain Anda.
Dapatkan alamat
EXTERNAL-IP
untuk setiap layanan ingress:Jalankan perintah berikut untuk mendapatkan detail konfigurasi layanan ingress "versi Istio yang dibundel" (
istio-ingress
) dan "add-on Istio" (istio-ingressgateway
):kubectl get svc istio-ingress -n gke-system kubectl get svc istio-ingressgateway -n istio-system
Contoh output:
Catat 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
Identifikasi alamat IP eksternal mana yang dikonfigurasi untuk menangani traffic melalui data DNS domain kustom Anda:
Buka halaman pemetaan domain inferensi Knative:
Klik ikon elips vertikal 3 titik di sebelah kanan layanan Anda, lalu klik DATA DNS untuk menampilkan semua data DNS:
Dengan contoh di atas, gateway ingress add-on Istio sedang digunakan dan melayani traffic jika konfigurasi data DNS ditetapkan ke alamat IP
10.987.654.321
layananistio-ingressgateway
.
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 di langkah sebelumnya.
INGRESS_NAMESPACE dengan namespace layanan ingress yang Anda identifikasi di langkah sebelumnya.
Konfigurasi Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
Untuk cluster pribadi:
Jika sudah memiliki akses ke cluster pribadi dari klien tempat Anda akan menjalankan skrip migrasi, Anda dapat melanjutkan 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 diizinkanmaster-authorized-networks
:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
Download skrip migrasi inferensi 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 "menskalakan 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 mengaktifkan kembali "menskalakan ke nol".