Memecahkan masalah Cloud Service Mesh langkah demi langkah
Bagian ini menjelaskan cara memecahkan masalah dan menyelesaikan masalah saat menggunakan Cloud Service Mesh. Jika Anda memerlukan bantuan tambahan, lihat Mendapatkan dukungan.
Langkah pemecahan masalah
Ikuti langkah-langkah umum berikut untuk memecahkan masalah Cloud Service Mesh:
- Gunakan alat validasi konfigurasi otomatis.
- Periksa apakah Anda mengalami masalah umum dengan solusi yang diketahui.
- Persempit cakupan masalah.
- Tinjau log dan informasi yang relevan.
- Kumpulkan log diagnostik dan cari bantuan.
Menggunakan alat validasi otomatis
Cloud Service Mesh menyertakan alat diagnostik dan validasi konfigurasi otomatis yang dapat menyelesaikan masalah dan membantu Anda menghindarinya di masa mendatang. Bagian berikut menjelaskan cara menggunakan alat ini.
istioctl analyze
Alat diagnostik istioctl analyze
dapat mendeteksi masalah konfigurasi umum.
Instal istioctl
menggunakan
petunjuk ini.
istioctl analyze
membaca konfigurasi cluster dan jika menemukan masalah,
memberikan pesan informasi dan menyarankan solusi. Aplikasi ini dapat berjalan di cluster aktif atau kumpulan file konfigurasi lokal. Pengujian ini juga dapat dijalankan terhadap
kombinasi keduanya, sehingga Anda dapat menemukan masalah sebelum menerapkan perubahan
ke cluster. Untuk informasi selengkapnya, lihat
Mendiagnosis Konfigurasi dengan istioctl analyze
.
Untuk informasi selengkapnya tentang error yang terdeteksi istioctl analyze
, lihat
Pesan Analisis Konfigurasi.
Menganalisis cluster aktif
Analisis cluster aktif menggunakan perintah berikut.
istioctl analyze -A
Jika mendeteksi masalah pada konfigurasi Anda, istioctl analyze
akan menampilkan
pesan dengan informasi bermanfaat untuk mengatasinya, jika diketahui. Misalnya, jika Anda melakukan kesalahan umum dengan tidak memberi label namespace dengan benar
untuk mengaktifkan injeksi sidecar Istio, hal ini akan menghasilkan pesan berikut:
Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection
Jika masalah berlanjut, lihat bagian berikutnya untuk memeriksa apakah masalah Anda sudah diketahui.
Memeriksa masalah dan solusi umum
Anda dapat menghemat waktu dengan memeriksa apakah gejala Anda cocok dengan masalah di bagian masalah dan solusi umum ini, yang dikelompokkan menurut area fungsi Cloud Service Mesh:
- Masalah penginstalan
- Masalah bidang kontrol terkelola
- Masalah visibilitas
- Masalah deployment di luar Google Cloud
- Masalah proxy
- Masalah resource
- Masalah penskalaan
- Masalah keamanan
- Masalah pengelolaan traffic
- Masalah webhook
- Masalah proxy sidecar
Jika langkah ini tidak menyelesaikan masalah Anda, lihat bagian berikutnya.
Mempersempit cakupan masalah
Cloud Service Mesh terdiri dari beberapa teknologi yang bekerja sama, yang berarti bahwa jenis masalah tertentu dikaitkan dengan area fungsional atau komponen tertentu. Setiap komponen ini menghasilkan lognya sendiri yang berguna. Sebelum mencoba menganalisis volume informasi yang diberikan secara manual, persempit cakupan pemecahan masalah Anda dengan menjawab pertanyaan berikut:
- Apakah masalah terjadi dalam bidang kontrol atau bidang data, misalnya proxy
istiod
atau Envoy? - Di area fungsional mana Anda mengalami masalah, misalnya Jaringan, Telemetri, Keamanan, dll.?
- Apakah ada kehilangan traffic di seluruh mesh layanan atau di deployment tertentu?
- Apakah masalah muncul atau memburuk karena kurangnya kemampuan untuk menskalakan traffic di mesh layanan?
- Apakah masalah tersebut menyebabkan latensi atau masalah performa lainnya?
- Dapatkah Anda merekonstruksi masalah sesuai permintaan?
- Apakah masalah dimulai setelah perubahan konfigurasi terbaru di Istio, GKE, dll.?
- Apakah ada peningkatan atau lonjakan traffic dalam mesh layanan?
- Apakah cluster ini memiliki fitur yang terlihat jelas yang diaktifkan atau deployment yang tidak biasa?
- Apakah Anda mengamati pemakaian CPU atau memori yang tinggi? Jika ya, berapa perkiraan penggunaannya dalam skala besar?
- Apakah ada batasan kuota yang perlu dipertimbangkan?
Melihat status bidang kontrol
Perintah berikut dapat membantu Anda memahami status platform kontrol Cloud Service Mesh:
kubectl get pods -n istio-system
kubectl describe -n istio-system
- Untuk semua pod di istio-system:
kubectl logs -n istio-system -l istio --all-containers
istioctl version
istioctl proxy-status
kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
kubectl top pods -n istio-system
Gunakan perintah berikut untuk memahami skala deployment:
kubectl get nodes
kubectl get services --all-namespaces
kubectl get pods --all-namespaces
Meninjau log dan informasi yang relevan
Setelah mempersempit cakupan masalah, Anda dapat berfokus pada log dan informasi tertentu secara lebih efektif. Untuk mempelajari log yang dihasilkan Cloud Service Mesh dan cara menafsirkan informasi yang dikandungnya, lihat Menafsirkan log Cloud Service Mesh.