Menyelesaikan masalah Layanan Kanonis di Anthos Service Mesh

Catatan: Layanan Kanonis didukung secara otomatis di Anthos Service Mesh versi 1.6.8 dan yang lebih baru.

Bagian ini menjelaskan masalah umum Anthos Service Mesh dan cara menyelesaikannya. Jika Anda memerlukan bantuan tambahan, lihat Mendapatkan dukungan.

Workload Kubernetes tanpa Layanan Kubernetes tidak ditampilkan

Jika Anda melihat "Beban kerja Kubernetes tanpa Layanan Kubernetes tidak ditampilkan. Buat Layanan Kubernetes untuk setiap beban kerja untuk melihatnya di bawah ini", Anda harus bermigrasi secara manual ke Layanan Kanonis.

Ada dua penyebab utama masalah ini:

  1. Cluster di mesh Anda menjalankan Anthos Service Mesh versi lama (< 1.6.8)
  2. Layanan dengan SLO yang ditetapkan tidak memetakan 1:1 dengan Layanan Kanonis

Cluster di mesh Anda menjalankan Anthos Service Mesh versi lama

Jika ada cluster Anda yang menjalankan versi ASM yang lebih lama (<1.6.8), Anda tidak memenuhi syarat untuk dasbor berbasis Layanan Kanonis. Untuk menggunakan Layanan Kanonis, Anda harus mengupgrade semua cluster ke Anthos Service Mesh 1.6.8 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade Anthos Service Mesh ke versi terbaru jika cluster Anda berada di GKE atau Mengupgrade Anthos Service Mesh secara lokal jika cluster Anda berada di infrastruktur lokal.

Layanan dengan SLO yang ditetapkan tidak memetakan 1:1 dengan Layanan Kanonis

Sebelum beralih ke Layanan Kanonis, Anthos Service Mesh menampilkan dasbor untuk Layanan Kubernetes. Meskipun Layanan Kubernetes dan Layanan Kanonis default sering kali selaras, ada kemungkinan bahwa Layanan Kubernetes tidak dapat dicocokkan secara otomatis dengan Layanan Kanonis yang terkait atau batas Layanan Kanonis default tidak diinginkan.

Jika Anda telah menyiapkan Tujuan Tingkat Layanan (SLO) pada layanan yang sudah ada dan tidak dapat dicocokkan secara otomatis dengan Layanan Kanonis default, layanan tersebut tidak dapat dimigrasikan. Untuk mulai menggunakan Layanan Kanonis, Anda harus menghapus SLO untuk layanan yang bermasalah. Jika mau, Anda dapat membuat SLO baru untuk Layanan Kanonis yang paling cocok dengan layanan tersebut sebelum menghapus SLO lama.

Dasbor saya tidak memiliki konten yang saya harapkan

Setiap dasbor layanan Mesh Layanan mencakup Layanan Kanonis di mesh layanan Anda, dengan Layanan Kanonis merupakan konsep layanan logis tingkat tinggi yang mencakup semua workload, region, dan lainnya yang relevan.

Secara default, label yang ada di setiap instance beban kerja (Pod atau WorkloadEntry) menentukan Layanan Kanonis dan mengikuti aturan ini dalam penurunan prioritas:

  1. Label service.istio.io/canonical-name telah ditetapkan secara eksplisit. Tidak ada tindakan lebih lanjut yang diambil.
  2. Jika tidak, label service.istio.io/canonical-name akan ditambahkan dan nilainya akan ditetapkan ke label app.kubernetes.io/name.
  3. Jika tidak, label service.istio.io/canonical-name akan ditambahkan dan nilainya akan ditetapkan ke label app.
  4. Jika tidak, label service.istio.io/canonical-name akan ditambahkan dan nilainya ditetapkan ke name beban kerja yang memilikinya. Dalam hal ini, "memiliki beban kerja" jika Pod di-deploy secara solo, atau Deployment, StatefulSet, dll. jika menggunakan orkestrasi level lebih tinggi.

Bagi sebagian besar pengguna Kubernetes dan Kube Run / Knative yang idiomatis, aturan ini memetakan langsung ke cara Anda mengelola layanan dan workload.

Namun, dalam beberapa kasus penggunaan yang lebih kustom atau lebih kompleks, heuristik default tidak menangkap layanan Anda dengan tepat, sehingga dasbor Anthos Service Mesh yang Anda lihat tidak menyertakan konten yang Anda harapkan.

Hal ini dapat diperbaiki dengan menentukan cakupan Layanan Kanonis secara manual.

Menentukan cakupan layanan secara manual

Jika memungkinkan, sebaiknya gunakan mekanisme pengelompokan default otomatis. Namun, jika ingin mengganti pengelompokan default ini, Anda dapat melakukannya dengan menerapkan label service.istio.io/canonical-name Kubernetes ke konfigurasi Pod Kubernetes dan WorkloadEntry.

Untuk mengetahui detailnya, lihat menentukan Layanan Kanonis secara manual.