Memigrasikan Istio yang dipaketkan ke Cloud Service Mesh

Langkah-langkah ini khusus untuk Istio versi paket yang disertakan secara default dengan "add-on GKE" layanan Knative.

Karena Istio versi paket di-uninstal saat Anda melakukan proses meng-uninstal "add-on GKE" layanan Knative, langkah-langkah di halaman ini akan menginstal Cloud Service Mesh di cluster Anda, lalu mengonfigurasi gateway ingress Anda.

Sebelum memulai

Ringkasan

Secara umum, proses penginstalan Cloud Service Mesh saat bermigrasi dari Istio versi paket, sama dengan proses untuk melakukan penginstalan Cloud Service Mesh yang bersih. Dalam proses ini, Cloud Service Mesh versi 1.18 diinstal dengan bidang kontrol dalam cluster.

Menginstal Cloud Service Mesh versi 1.18

Anda menggunakan dokumentasi penginstalan Cloud Service Mesh untuk menginstal Cloud Service Mesh.

Sebelum memulai:

  • Untuk migrasi, gateway masuk harus diinstal secara terpisah selama langkah-langkah konfigurasi berikutnya. Skrip penginstalan tidak akan menginstal gateway traffic masuk secara default.

  • Opsional: Jika Anda menggunakan certificate authority (CA) Cloud Service Mesh (Mesh CA), Anda juga harus menyertakan flag --ca mesh_ca dengan skrip penginstalan Cloud Service Mesh.

Untuk menginstal Cloud Service Mesh:

Ikuti langkah-langkah dalam dokumentasi Cloud Service Mesh: Menginstal Cloud Service Mesh versi 1.18

Contoh

Berikut adalah contoh perintah default yang menyertakan tanda wajib:

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Mengonfigurasi traffic masuk Cloud Service Mesh

Di bagian ini, skrip migrasi digunakan untuk membuat gateway masuk Cloud Service Mesh dalam namespace gke-system.

Untuk migrasi, namespace gke-system digunakan sehingga gateway ingress ditempatkan dalam namespace yang sama dengan yang digunakan oleh "Istio yang dibundel" yang baru saja dihapus. Oleh karena itu, pod ingress Cloud Service Mesh dapat mengambil alih traffic dengan lancar tanpa memerlukan perubahan konfigurasi apa pun pada layanan ingress. Misalnya, Anda tidak perlu mengonfigurasi alamat IP eksternal baru.

  1. Untuk membuat gateway ingress dalam namespace gke-system, jalankan perintah berikut untuk memulai skrip migrasi:

    ./migration-addon.sh --command set-up-asm-ingress
    

    Output terminal selama proses akan terlihat mirip dengan berikut ini:

    Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Cloud Service Mesh ingress is successfully installed.
    
  2. Pastikan gateway ingress istio-ingrerssgateway berjalan di namespace istio-ingrerssgateway dengan menjalankan perintah berikut:gke-system

    kubectl get deployment istio-ingressgateway -n gke-system
    

    Perhatikan bahwa jumlah pod istio-ingressgateway sengaja dibuat 0. Setelah menginstal komponen fleet penayangan Knative, ada langkah selanjutnya untuk memigrasikan semua traffic ke ingress Cloud Service Mesh.

Langkah berikutnya

Instal komponen fleet

Rollback

Jika perlu melakukan rollback perubahan yang Anda buat melalui langkah-langkah sebelumnya, Anda dapat menggunakan skrip migrasi untuk:

  • Hapus gateway ingress Cloud Service Mesh.
  • Uninstal Cloud Service Mesh.

Untuk mengembalikan konfigurasi dan penginstalan Cloud Service Mesh:

  1. Jalankan perintah berikut untuk memulai rollback.

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    Output terminal selama proses akan terlihat mirip dengan berikut ini:

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. Untuk memverifikasi bahwa gateway ingress Cloud Service Mesh telah dihapus, periksa apakah layanan istio-ingressgateway tidak lagi ada di namespace gke-system:

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Meng-uninstal Cloud Service Mesh

  4. Untuk terus mengembalikan semua perubahan ke kondisi awal penginstalan Anda, lakukan rollback pada "add-on" GKE untuk layanan Knative.