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:

  1. Gunakan alat validasi konfigurasi otomatis.
  2. Periksa apakah Anda mengalami masalah umum dengan solusi yang diketahui.
  3. Persempit cakupan masalah.
  4. Tinjau log dan informasi yang relevan.
  5. Kumpulkan log diagnostik dan cari bantuan.

Alat diagnostik Cloud Service Mesh dapat mendeteksi masalah konfigurasi umum. Instal alat pemecahan masalah menggunakan petunjuk ini.

Sebelum memulai

  1. Pastikan konteks kubeconfig untuk cluster Anda tersedia di file kubeconfig. Jika tidak, jalankan perintah berikut:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CLUSTER_LOCATION --project=PROJECT_NAME
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster Anda.
    • CLUSTER_LOCATION: zona atau region untuk cluster Anda.
    • PROJECT_NAME: nama project.
  2. Pastikan Kredensial Default Aplikasi telah dibuat. Jika tidak, jalankan salah satu perintah berikut:

    gcloud auth application-default login --billing-project=PROJECT_NAME
    
    gcloud auth application-default set-quota-project PROJECT_NAME
    

    Mengganti PROJECT_NAME dengan nama project Anda.

Melihat status bidang kontrol

Perintah berikut dapat membantu Anda memahami status bidang kontrol Cloud Service Mesh:

Terkelola

  • Dapatkan daftar status koneksi klien ke platform kontrol Cloud Service Mesh:

    gcloud beta container fleet mesh debug proxy-status \
        --membership=MEMBERSHIP_NAME \
        --location=MEMBERSHIP_LOCATION \
        --project=PROJECT_NAME
    

    Ganti kode berikut:

    • MEMBERSHIP_NAME: nama keanggotaan Anda.
    • MEMBERSHIP_LOCATION: region untuk langganan Anda. Anda dapat memeriksa lokasi langganan dengan gcloud container fleet memberships list --project FLEET_PROJECT_ID yang mengganti FLEET_PROJECT_ID dengan project ID fleet.
    • PROJECT_NAME: nama project.

    Tabel berikut menjelaskan kemungkinan respons.

    TIDAK DIKETAHUI (Default) ⁣Informasi status tidak tersedia atau tidak diketahui.
    DISINKRONKAN Bidang kontrol mengirim konfigurasi ke klien dan menerima ACK dari klien.
    ERROR ⁣Plane kontrol mengirim konfigurasi ke klien dan menerima NACK dari klien.
    STALE Bidang kontrol mengirim konfigurasi ke klien, tetapi tidak menerima ACK atau NACK dari klien.
    TIDAK DIKIRIM Konfigurasi tidak dikirim.
    T/A Tidak berlaku.
    Tidak didukung Status sinkronisasi tidak didukung oleh API pemecahan masalah kami.

Dalam cluster

  • 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

Melihat konfigurasi proxy

Perintah berikut dapat membantu Anda memahami konfigurasi proxy Cloud Service Mesh:

Terkelola

gcloud beta container fleet mesh debug proxy-config POD_NAME.NAMESPACE \ 
    --type=TYPE \
    --membership=MEMBERSHIP_NAME \
    --location=MEMBERSHIP_LOCATION \
    --project=PROJECT_NAME
  • POD_NAME: nama Pod Anda.
  • NAMESPACE: namespace Pod Anda.
  • TYPE: Salah satu dari hal berikut: cluster, pemroses, rute, endpoint, bootstrap, log, secret, semua.
  • MEMBERSHIP_NAME: nama keanggotaan Anda.
  • MEMBERSHIP_LOCATION: region untuk langganan Anda. Anda dapat memeriksa lokasi langganan dengan gcloud container fleet memberships list --project FLEET_PROJECT_ID yang mengganti FLEET_PROJECT_ID dengan project ID fleet.
  • PROJECT_NAME: nama project.

Dalam cluster

Gunakan istioctl proxy-config untuk melihat konfigurasi proxy untuk bidang kontrol dalam cluster. Untuk mengetahui informasi selengkapnya, lihat Men-debug Envoy dan istiod.

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:

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?

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.