Memecahkan masalah Cloud Service Mesh langkah demi langkah
Bagian ini menjelaskan cara memecahkan dan menyelesaikan masalah saat menggunakan dan 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 memiliki masalah umum dengan solusi yang diketahui.
- Mempersempit ruang lingkup masalah.
- Tinjau log dan informasi yang relevan.
- Kumpulkan log diagnostik dan cari bantuan.
Menggunakan alat validasi otomatis
Cloud Service Mesh mencakup alat diagnostik dan validasi konfigurasi otomatis yang dapat menyelesaikan masalah dan membantu Anda menghindarinya di masa depan. Hal berikut menjelaskan cara menggunakan {i>tool<i} ini.
istioctl analyze
Alat diagnostik istioctl analyze
dapat mendeteksi masalah konfigurasi umum.
Instal istioctl
menggunakan ini
petunjuk.
istioctl analyze
akan membaca konfigurasi cluster, dan jika menemukan masalah,
memberikan pesan informasi dan menyarankan solusi. Pengujian ini dapat dijalankan di
atau serangkaian file konfigurasi lokal. Cloud Endpoints juga dapat dijalankan terhadap
kombinasi keduanya, memungkinkan Anda untuk
menemukan masalah sebelum menerapkan perubahan
ke cluster. Untuk informasi selengkapnya, lihat
Diagnosis Konfigurasi Anda dengan istioctl analyze
.
Untuk mengetahui informasi selengkapnya tentang error yang terdeteksi istioctl analyze
, lihat
Pesan Analisis Konfigurasi.
Menganalisis cluster live
Analisis cluster live menggunakan perintah berikut.
istioctl analyze -A
Jika istioctl analyze
mendeteksi masalah pada konfigurasi Anda, kode ini akan menampilkan
pesan berisi informasi bermanfaat untuk
menyelesaikannya, jika diketahui. Sebagai
misalnya, jika Anda melakukan kesalahan umum yaitu salah memberi label namespace dengan benar
untuk mengaktifkan injeksi file bantuan Istio, sistem 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 yang sudah Anda ketahui.
Memeriksa masalah dan solusinya umum
Anda dapat menghemat waktu dengan memeriksa apakah gejala Anda cocok dengan masalah umum berikut bagian masalah dan resolusi, yang dikelompokkan berdasarkan fungsional Cloud Service Mesh area:
- Masalah penginstalan
- Masalah bidang kontrol terkelola
- Masalah kemampuan observasi
- Masalah deployment di luar Google Cloud
- Masalah proxy
- Masalah resource
- Masalah penskalaan
- Masalah keamanan
- Masalah pengelolaan traffic
- Masalah webhook
- Masalah proxy file bantuan
Jika cara ini tidak menyelesaikan masalah Anda, lihat bagian berikutnya.
Mempersempit ruang lingkup masalah
Cloud Service Mesh terdiri dari beberapa teknologi yang bekerja sama, yang berarti bahwa jenis masalah tertentu terkait dengan area fungsional tertentu atau komponen. Masing-masing komponen ini menghasilkan log mereka sendiri yang bermanfaat. Sebelum pembaruan Anda mencoba untuk secara manual menganalisis volume informasi yang mereka berikan, cakupan pemecahan masalah Anda dengan menjawab pertanyaan-pertanyaan berikut:
- Apakah masalah terjadi dalam bidang kontrol atau bidang data, misalnya
istiod
atau proxy Envoy? - Di area fungsional mana Anda mengalami masalah, misalnya Jaringan, Telemetri, Keamanan, dll.?
- Apakah ada kehilangan traffic service-mesh luas atau dalam 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 mereproduksi masalah sesuai permintaan?
- Apakah masalah dimulai setelah perubahan konfigurasi baru-baru ini di Istio, GKE, dll.?
- Apakah ada peningkatan atau lonjakan traffic dalam mesh layanan?
- Apakah cluster ini memiliki fitur nyata yang diaktifkan atau deployment yang tidak standar?
- Apakah Anda mengamati penggunaan CPU atau memori yang tinggi? Jika demikian, berapa penggunaan yang diperkirakan dalam skala besar?
- Apakah ada batasan kuota yang perlu dipertimbangkan?
Lihat status bidang kontrol
Perintah berikut dapat membantu Anda memahami status bidang 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
Tinjau log dan informasi yang relevan
Setelah Anda mempersempit cakupan masalah, Anda dapat fokus pada log tertentu dan informasi secara lebih efektif. Untuk mempelajari log yang dibutuhkan oleh Cloud Service Mesh dihasilkan dan cara menafsirkan informasi yang dikandungnya, lihat Menafsirkan log Cloud Service Mesh.