Memecahkan masalah Cloud Service Mesh langkah demi langkah

Bagian ini menjelaskan cara memecahkan 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:

  1. Gunakan alat validasi konfigurasi otomatis.
  2. Periksa apakah Anda memiliki masalah umum dengan solusi yang diketahui.
  3. Mempersempit ruang lingkup masalah.
  4. Tinjau log dan informasi yang relevan.
  5. 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 pada masa mendatang. Bagian berikut menjelaskan cara menggunakan alat ini.

istioctl analyze

Alat diagnostik istioctl analyze dapat mendeteksi masalah konfigurasi umum. Instal istioctl menggunakan instructions ini.

istioctl analyze membaca konfigurasi cluster, dan jika menemukan masalah, memberikan pesan informasi dan menyarankan perbaikan. Layanan ini dapat dijalankan pada cluster live atau serangkaian file konfigurasi lokal. Fungsi ini juga dapat dijalankan terhadap kombinasi keduanya, sehingga Anda dapat menemukan masalah sebelum menerapkan perubahan pada cluster. Untuk mengetahui informasi selengkapnya, lihat Mendiagnosis Konfigurasi dengan istioctl analyze. Untuk mengetahui informasi selengkapnya tentang error yang terdeteksi oleh 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, pesan berisi informasi berguna untuk menyelesaikannya akan ditampilkan, jika diketahui. Misalnya, jika Anda melakukan kesalahan umum yaitu tidak memberi label namespace dengan benar untuk mengaktifkan injeksi file bantuan 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 solusinya umum

Anda dapat menghemat waktu dengan memeriksa apakah gejala Anda cocok dengan masalah di bagian masalah umum dan penyelesaian ini, yang dikelompokkan berdasarkan area fungsional Cloud Service Mesh:

Jika cara ini tidak menyelesaikan masalah Anda, lihat bagian berikutnya.

Mempersempit ruang lingkup masalah

Cloud Service Mesh terdiri dari beberapa teknologi yang bekerja sama. Artinya, jenis masalah tertentu berkaitan dengan area atau komponen fungsional tertentu. Masing-masing komponen ini menghasilkan log mereka sendiri yang bermanfaat. Sebelum Anda mencoba menganalisis volume informasi yang diberikan secara manual, persempit cakupan pemecahan masalah dengan menjawab 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 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 ada di dalamnya, lihat Menafsirkan log Cloud Service Mesh.