Gunakan panduan ini untuk memigrasikan penginstalan Knative Serving yang ada di Google Cloud agar menggunakan armada dengan Cloud Service Mesh.
Versi "uji coba gratis" Knative serving sebelumnya, yang juga disebut sebagai "add-on GKE", menyertakan Istio 1.4 versi bawaan dan yang disederhanakan yang tidak lagi didukung mulai Anthos 1.8.
Mengupgrade penginstalan Knative serving untuk menggunakan fleet dan Cloud Service Mesh akan meningkatkan kualitas upgrade produk dan independensi pengelolaan, serta meningkatkan kualitas integrasi di seluruh fitur GKE Enterprise. Pelajari lebih lanjut apa yang baru dan berubah.
Ada dua jalur untuk memigrasikan penginstalan Anda:
Proses yang direkomendasikan adalah memigrasikan workload Anda dari cluster tempat versi Knative serving sebelumnya diinstal ("add-on GKE"), ke cluster baru tempat Anda telah menginstal dan mengonfigurasi penginstalan fleet baru Knative serving. Meskipun proses ini relatif mudah dan ideal, jika workload Anda melayani traffic, migrasi ke cluster yang baru dibuat akan menyebabkan waktu nonaktif. Untuk melakukan jalur migrasi ini, di cluster baru, Anda:
- Instal inferensi Knative sebagai komponen fleet.
Deploy layanan Anda ke penginstalan baru.
Misalnya, Anda dapat menggunakan petunjuk untuk men-deploy revisi layanan yang ada untuk mendownload file konfigurasi YAML satu per satu untuk setiap layanan, lalu men-deploy setiap file YAML ke cluster baru di penginstalan fleet layanan Knative:
Pada penginstalan lama, Anda dapat menjalankan perintah berikut untuk mendownload file konfigurasi YAML, seperti
service.yaml
:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Pada penginstalan komponen armada baru, Anda dapat menjalankan perintah berikut untuk men-deploy
service.yaml
yang sama:gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID
Ganti:
CLUSTER_NAME dengan nama cluster di penginstalan komponen fleet baru untuk layanan Knative.
CLUSTER_LOCATION dengan zona atau region cluster dalam penginstalan komponen fleet baru untuk penayangan Knative.
PROJECT_ID dengan ID project Google Cloud Anda tempat penginstalan komponen fleet baru untuk layanan Knative berada.
Alternatif: Untuk pengguna yang tidak dapat membuat cluster baru dan harus memigrasikan penayangan Knative yang aktif, Anda dapat mengikuti langkah-langkah dalam panduan ini untuk:
- Hapus "add-on GKE" dan resource Istio sebelumnya.
- Menginstal resource armada baru.
- Migrasikan ke Cloud Service Mesh, lalu migrasikan traffic Anda.
- Hapus semua resource yang tidak aktif dan tidak digunakan.
Panduan berikut akan memandu Anda melalui proses alternatif untuk mengupgrade penginstalan Knative serving yang ada dan aktif, termasuk semua beban kerja, untuk memenuhi persyaratan GKE Enterprise 1.8 dan yang lebih baru.
Sebelum memulai
Proses upgrade ini hanya boleh dilakukan pada cluster Google Kubernetes Engine yang sebelumnya menginstal layanan Knative sebagai "add-on GKE".
Periksa apakah "add-on GKE" sudah diinstal.
Untuk memeriksa apakah penginstalan layanan Knative Anda adalah "add-on GKE", jalankan perintah berikut:
gcloud container clusters describe \ CLUSTER_NAME \ --region CLUSTER_LOCATION \ --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
Ganti:
- CLUSTER_NAME dengan nama cluster Anda.
- CLUSTER_LOCATION dengan lokasi tempat cluster Anda berada.
- PROJECT_ID dengan ID project Google Cloud Anda.
Hasil:
- "Add-on GKE" tidak diinstal:
- Tidak ada yang ditampilkan ke terminal Anda jika add-on tidak pernah diinstal.
disabled=true
ditampilkan jika add-on sebelumnya di-uninstal.
- "Add-on GKE" diinstal: Jika add-on diinstal di cluster Anda, detail konfigurasi untuk add-on akan ditampilkan.
Contoh:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
- Contoh:
-
Contoh berikut menunjukkan bahwa layanan Knative diinstal di cluster
my-addon-cluster
melalui "add-on GKE", yang dikonfigurasi untuk menangani traffic eksternal:gcloud container clusters describe my-addon-cluster \ --region us-central1-c --project my-gcp-project \ --format='get(addonsConfig.cloudRunConfig)'
Respons:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
Anda harus memiliki izin yang memadai di Google Cloud project untuk memenuhi persyaratan cluster, fleet, dan Cloud Service Mesh:
Jika Anda memiliki peran Pemilik untuk project Google Cloud , Anda memiliki lebih dari izin yang diperlukan untuk membuat cluster, menginstal, lalu mengonfigurasi layanan Knative.
Perhatikan bahwa persyaratan izin Cloud Service Mesh juga memenuhi semua persyaratan izin untuk menginstal dan mengonfigurasi Knative serving.
Menggunakan peran lain dan persyaratan minimum:
Bergantung pada organisasi Anda, Anda juga dapat memenuhi persyaratan izin melalui kombinasi peran bawaan berikut:
Google Cloud izin project: Peran Editor dasar
Izin fleet: Admin GKE Hub atau peran yang mencakup izin berikut:
gkehub.features.create
gkehub.features.update
Izin cluster: Peran Admin Kubernetes Engine:
- Kubernetes Engine Admin
- Kubernetes Engine Cluster Admin
Hanya Cloud Service Mesh versi 1.18 yang didukung.
Cloud Service Mesh mengharuskan cluster Anda menggunakan jenis mesin dengan setidaknya 4 vCPU, seperti
e2-standard-4
. Lihat panduan penginstalan Cloud Service Mesh untuk mengetahui detail tentang persyaratan. Jika Anda perlu mengubah jenis mesin cluster yang ada, lihat Memigrasikan workload ke jenis mesin yang berbeda.Menggunakan Cloud Shell adalah lingkungan yang direkomendasikan untuk menjalankan perintah dan skrip migrasi selama proses ini. Perhatikan bahwa skrip penginstalan Cloud Service Mesh hanya mendukung Linux atau Cloud Shell.
Jika penyiapan Knative Serving yang ada menggunakan add-on Istio di GKE, Anda harus bermigrasi ke Managed Control Plane Cloud Service Mesh. Migrasi dari add-on Istio di GKE ke bidang kontrol dalam cluster Cloud Service Mesh saat ini tidak didukung.
Mengupgrade inferensi Knative dan memigrasikan workload
Untuk membantu mengupgrade penginstalan Knative Serving yang ada dan memigrasikan workload, Anda menjalankan skrip yang mengotomatiskan sebagian besar langkah dan meminta input Anda selama proses berlangsung.