Memahami kompatibilitas Cloud Service Mesh
Panduan ini menjelaskan cara mengevaluasi kompatibilitas fleet untuk modernisasi bidang kontrol dengan mengonfirmasi bahwa konfigurasi, infrastruktur, dan skalanya kompatibel dengan penerapan bidang kontrol TRAFFIC_DIRECTOR.
Mengaktifkan atau menonaktifkan pemeriksaan kompatibilitas
Untuk memulai pemeriksaan kompatibilitas, aktifkan mode validasi untuk fleet, yang akan memicu audit berkelanjutan atas semua konfigurasi Istio, konfigurasi Infrastruktur, dan parameter skala. Mengaktifkan pemeriksaan ini tidak akan melakukan perubahan apa pun pada fleet atau cluster Anda; pemeriksaan 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 di 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. Izinkan waktu 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 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 ketidakcocokan, outputnya 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 disediakan dalam setiap kondisi untuk memahami dan mengatasi ketidakcocokan tertentu.
Mengatasi masalah kompatibilitas
Mengatasi 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 mengatasi 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.Memperbaiki dan memverifikasi:
- Ubah spesifikasi YAML untuk Deployment atau Pod Anda guna menghapus atau mengubah anotasi yang diidentifikasi, sehingga memastikan anotasi tersebut tidak menyertakan anotasi yang tidak didukung. Terapkan kembali YAML yang telah diupdate ke cluster Anda.
- Setelah semua anotasi Pod diperbaiki, kondisi
MODERNIZATION_INCOMPATIBLE_POD_ANNOTATIONtidak akan muncul lagi untuk keanggotaan tersebut.