Memahami kompatibilitas Cloud Service Mesh
Implementasi bidang kontrol ISTIOD
tidak digunakan lagi, dan Anda harus mengevaluasi kompatibilitas,
menyelesaikan kondisi pemblokiran di seluruh fleet, dan melakukan modernisasi sebelum
batas waktu akhir dukungan.
Panduan ini menjelaskan cara mengevaluasi kompatibilitas fleet untuk modernisasi bidang kontrol dengan mengonfirmasi bahwa konfigurasi, infrastruktur, dan skalanya kompatibel dengan implementasi bidang kontrol TRAFFIC_DIRECTOR.
Mengaktifkan atau menonaktifkan pemeriksaan kompatibilitas
Untuk memulai pemeriksaan kompatibilitas, aktifkan mode validasi untuk fleet, yang akan memicu audit berkelanjutan terhadap semua konfigurasi Istio, konfigurasi Infrastruktur, dan parameter skala. Mengaktifkan pemeriksaan ini tidak akan melakukan perubahan apa pun pada fleet atau cluster Anda; tindakan ini hanya mengaktifkan pelaporan kompatibilitas.
Mengaktifkan pemeriksaan
Untuk memulai audit kompatibilitas, jalankan perintah gcloud berikut:
gcloud alpha container fleet mesh update --modernization-compatibility validation-enabled --project FLEET_PROJECT_ID
Ganti FLEET_PROJECT_ID dengan ID project Host Fleet Anda.
Umumnya, FLEET_PROJECT_ID memiliki nama yang sama dengan project.
Setelah diaktifkan, Cloud Service Mesh akan mulai mengevaluasi fleet dan semua cluster yang disediakan Cloud Service Mesh dalam fleet untuk kompatibilitas modernisasi.
Menonaktifkan pemeriksaan
Untuk menghentikan pelaporan hasil kompatibilitas, jalankan perintah berikut:
gcloud alpha container fleet mesh update --modernization-compatibility validation-disabled --project FLEET_PROJECT_ID
Perintah ini akan menghapus kondisi kompatibilitas modernisasi dari
status keanggotaan, serta status ModernizationCompatible dari
CR Istio individual.
Memahami kompatibilitas
Kompatibilitas modernisasi dilaporkan menggunakan kondisi di tingkat fleet dan keanggotaan (cluster). Sistem melakukan berbagai pemeriksaan pada waktu yang berbeda, dengan semua pemeriksaan berjalan setidaknya sekali sehari. Tunggu hingga satu hari agar status diperbarui setelah mengaktifkan pemeriksaan atau menerapkan perbaikan.
Untuk melihat hasil ini, ambil status mesh terbaru dengan perintah berikut:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Kompatibilitas tingkat fleet
Lihat status modernisasi keseluruhan fleet Anda di bagian
state.servicemesh.conditions.
Fleet kompatibel: Jika fleet Anda kompatibel, Anda akan melihat kondisi dengan kode
MODERNIZATION_COMPATIBLE:name: projects/project_id/locations/global/features/servicemesh state: servicemesh: conditions: - code: MODERNIZATION_COMPATIBLE details: 'Fleet is eligible for modernization.' documentationLink: https://cloud.google.com/service-mesh/... severity: INFOFleet is not compatible: Jika fleet Anda belum kompatibel untuk modernisasi, Anda akan melihat kondisi dengan kode
MODERNIZATION_INCOMPATIBLE:name: projects/project_id/locations/global/features/servicemesh state: servicemesh: conditions: - code: MODERNIZATION_INCOMPATIBLE details: 'Fleet is not yet eligible for modernization.' documentationLink: https://cloud.google.com/service-mesh/... severity: INFOJika fleet Anda tidak kompatibel, tinjau kondisi untuk mengetahui kesenjangan tertentu. Periksa kondisi tingkat fleet dengan tingkat keparahan
WARNINGatauERRORtambahan serta kondisi tingkat cluster di bagianmembershipStates.servicemeshuntuk menyelesaikan pemblokir.
Kompatibilitas level cluster
Cari kondisi dengan tingkat keparahan WARNING atau ERROR di bagian
membershipStates.servicemesh untuk setiap cluster yang disediakan Cloud Service Mesh di fleet. Jika
ada ketidaksesuaian, output-nya akan mirip dengan ini:
membershipSpecs:
projects/project_id/locations/global/memberships/cluster-a:
mesh:
management:MANAGEMENT_AUTOMATIC
membershipStates:
projects/project_id/locations/global/memberships/cluster-a:
servicemesh:
conditions:
- code: MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION
details: 'Pod pod-a in namespace test-namespace: invalid annotations: ["status.sidecar.istio.io/port": failed to parse port - "invalid", port must be a number and should be in the range 1..65535]; unsupported annotations: ["ambient.istio.io/redirection"] .'
documentationLink: https://cloud.google.com/service-mesh/...
severity: WARNING
- code: WORKLOAD_IDENTITY_REQUIRED
details: 'Workload Identity is not enabled for the cluster or at least one of the node pools.'
documentationLink: https://cloud.google.com/...
severity: ERROR
...
Ikuti documentationLink yang diberikan dalam setiap kondisi untuk memahami dan
menyelesaikan ketidaksesuaian tertentu.
Menyelesaikan masalah kompatibilitas
Menyelesaikan anotasi pod yang tidak kompatibel
Kode MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION menunjukkan bahwa cluster
tidak dapat dimodernisasi ke bidang kontrol TRAFFIC_DIRECTOR karena
Pod tertentu memiliki anotasi Istio yang tidak didukung atau tidak valid.
Contoh output dari perintah gcloud container fleet mesh describe dengan
kondisi MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION yang ditetapkan untuk keanggotaan:
membershipStates:
projects/project_id/locations/global/memberships/membership-a:
servicemesh:
conditions:
- code: MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION
details: 'Pod pod-a in namespace test-namespace: invalid annotations: ["status.sidecar.istio.io/port": failed to parse port - "invalid", port must be a number and should be in the range 1..65535]; unsupported annotations: ["ambient.istio.io/redirection"] .'
documentationLink: https://cloud.google.com/service-mesh/...
severity: WARNING
Untuk menyelesaikan anotasi pod ini:
Mengidentifikasi anotasi yang bermasalah: Periksa kolom
detailsdari kondisi status untuk menemukan kunci anotasi yang tidak didukung atau tidak valid. Temukan semua Pod dengan kunci anotasi yang bermasalah.Perbaiki dan verifikasi:
- Ubah spesifikasi YAML untuk Deployment atau Pod Anda guna memastikan bahwa spesifikasi tersebut hanya menggunakan anotasi yang didukung (semua anotasi lainnya tidak didukung). Hapus anotasi yang tidak didukung, perbaiki nilai yang tidak valid, dan terapkan kembali YAML yang telah diperbarui ke cluster Anda.
- Setelah semua anotasi Pod diperbaiki, kondisi
MODERNIZATION_INCOMPATIBLE_POD_ANNOTATIONtidak akan muncul lagi untuk keanggotaan tersebut.
Menyelesaikan konfigurasi yang tidak kompatibel
Kode MODERNIZATION_INCOMPATIBLE_CONFIG menunjukkan bahwa cluster tidak dapat
dimodernisasi ke bidang kontrol TRAFFIC_DIRECTOR karena
konfigurasi yang tidak kompatibel. Ketidakcocokan ini dapat disebabkan oleh:
- Resource Kustom (CR) Istio tertentu yang menggunakan fitur atau kolom yang tidak didukung atau berisi nilai yang tidak valid.
- Setelan MeshConfig Istio tidak valid atau tidak didukung.
- Melebihi batas skalabilitas.
- Penggunaan anotasi layanan atau namespace yang tidak didukung.
Contoh output dari perintah gcloud container fleet mesh describe dengan
kondisi MODERNIZATION_INCOMPATIBLE_CONFIG yang ditetapkan untuk keanggotaan:
membershipSpecs:
projects/project_id/locations/global/memberships/membership-a:
mesh:
management:MANAGEMENT_AUTOMATIC
membershipStates:
projects/project_id/locations/global/memberships/membership-a:
servicemesh:
conditions:
- code: MODERNIZATION_INCOMPATIBLE_CONFIG
details: 'One or more configs have warnings. Due to the following reason(s): Istio sidecar scale exceeds limit, MeshConfig "accessLogFile" is unsupported. Invalid Config Types: [Gateway, ServiceEntry], where more details are shown on individual config resources.See documentation link for more detail.'
documentationLink: https://cloud.google.com/service-mesh/...
severity: WARNING
Untuk menyelesaikan konfigurasi ini:
Analisis detail kondisi: Periksa kolom
detailsdari kondisi status. Ringkasan ini merangkum setiap error dan mengidentifikasi jenis resource yang mengalami masalah konfigurasi. Untuk contoh detail yang diberikan, Anda akan diminta untuk mengatasi masalah skala dan MeshConfig serta memeriksa resourceGatewaydanServiceEntryuntuk menemukan error.Mengidentifikasi dan menyelidiki resource yang tidak kompatibel: Gunakan contoh skrip berikut untuk mencantumkan Resource Kustom (CR) Istio yang gagal dalam pemeriksaan kompatibilitas. Skrip ini disediakan sebagai contoh; tinjau dan analisis untuk memastikan skrip tersebut memenuhi persyaratan lingkungan dan operasional Anda sebelum menjalankannya di cluster. Skrip ini memerlukan penginstalan
kubectldanjq. Outputnya mencakup detail error spesifik yang ditemukan di bagianstatus.conditions(jenis:ModernizationCompatible, status:"False") dari setiap resource.for resource in authorizationpolicies destinationrules envoyfilters gateways peerauthentications proxyconfigs requestauthentications serviceentries sidecars telemetries virtualservices wasmplugins workloadentries workloadgroups; do echo "--- Checking $resource ---" kubectl get $resource --all-namespaces -o json | \ jq -r '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "ModernizationCompatible" and .status == "False")) | {"kind": .kind, "name": .metadata.name, "namespace": .metadata.namespace, "message": [.status.conditions[] | select(.type == "ModernizationCompatible").message]}' doneContoh Output:
--- Checking serviceentries --- { "kind": "ServiceEntry", "name": "demo-service-entry", "namespace": "se", "message": [ "WARNING: unsupported resolution type: DNS_ROUND_ROBIN" ] } .. --- Checking workloadentries --- { "kind": "WorkloadEntry", "name": "demo-we", "namespace": "default", "message": [ "WARNING: This API is not supported" ] }Perbaiki dan terapkan konfigurasi: Ubah YAML Anda dengan menghapus kolom yang tidak didukung atau mengganti nilai yang tidak valid dengan nilai yang kompatibel. Untuk mendapatkan bantuan, lihat dokumentasi Fitur yang didukung dari Cloud Service Mesh terkelola dan Dukungan API di Cloud Service Mesh Terkelola. (Misalnya, dalam contoh yang diberikan, perbarui resolusi
ServiceEntrydariDNS_ROUND_ROBINmenjadiDNS).Verifikasi perbaikan: Setelah menerapkan perbaikan, tunggu hingga 24 jam agar pemeriksaan berkala memperbarui status.
Kondisi
ModernizationCompatiblepada resource yang diperbaiki akan berubah menjadi status:"True". Periksa status resource menggunakan:kubectl get resource name -n namespace -o yamlContoh output:
status: conditions: - lastTransitionTime: "2026-06-05T06:12:52.219963391Z" message: Resource is compatible for modernization reason: Compatible status: "True" type: ModernizationCompatibleJalankan kembali perintah
gcloud container fleet mesh describe. Setelah semua masalah terkait diselesaikan, kondisiMODERNIZATION_INCOMPATIBLE_CONFIGtidak akan muncul lagi untuk keanggotaan tersebut.
Mengatasi skala fleet yang tidak kompatibel
Kode MODERNIZATION_INCOMPATIBLE_FLEET_SCALE menunjukkan bahwa fleet
tidak dapat dimodernisasi ke bidang kontrol TRAFFIC_DIRECTOR karena
skala resource di seluruh fleet melebihi batas yang didukung
untuk modernisasi.
Dalam fase ini, kami mendukung modernisasi fleet dengan batasan berikut:
- Hingga 1.500 endpoint bidang data (proxy) di seluruh fleet.
- Hingga 200 layanan Cloud Service Mesh di seluruh fleet.