Menyelesaikan masalah konfigurasi

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

Memeriksa MembershipState

Kapan saja Anda dapat memeriksa status terbaru mesh dengan menjalankan perintah berikut:

gcloud container fleet mesh describe

Outputnya mirip dengan:

...
membershipSpecs:
  projects/project_id/locations/global/memberships/cluster:
    mesh:
      management: MANAGEMENT_AUTOMATIC
membershipStates:
  projects/project_id/locations/global/memberships/cluster:
    servicemesh:
      ...
      conditions:
        - code: CONFIG_VALIDATION_WARNING
          documentationLink: https://cloud.google.com/...
          details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
          severity: WARNING
...

Kode Error MembershipState

Jika Cloud Service Mesh melaporkan kondisi ke MembershipState untuk cluster, hal ini dapat berarti konfigurasi Mesh (seperti Resource Kustom Istio) tidak dapat diterapkan. Deskripsi kode error berikut memberikan informasi selengkapnya tentang cara mengatasinya.

Kode Error Penyebab Resolusi
CONFIG_APPLY_INTERNAL_ERROR Satu atau beberapa konfigurasi gagal diterapkan karena error internal. Hubungi dukungan pelanggan.
QUOTA_EXCEEDED_* Satu atau beberapa konfigurasi gagal diterapkan karena resource mencapai batas kuota. Lihat Kuota untuk mengetahui informasi tentang kuota tertentu dan cara menaikkannya.
CONFIG_VALIDATION_ERROR Satu atau beberapa konfigurasi gagal diterapkan karena konfigurasi tidak valid. Error tertentu ditulis ke konfigurasi yang menyebabkannya. Informasi selengkapnya tentang cara mendiagnosis error ini dijelaskan di bagian: Error Validasi Konfigurasi.
CONFIG_VALIDATION_WARNING Kami menemukan potensi masalah dalam satu atau beberapa konfigurasi. Perubahan ini mungkin belum diterapkan, dan jika sudah diterapkan, mungkin ada perilaku yang tidak diinginkan. Informasi selengkapnya tentang cara mendiagnosis error ini dijelaskan di bagian: Error Validasi Konfigurasi.
MULTICLUSTER_SECRET_WARNING Cluster menggunakan secret multi-cluster Istio yang dibuat secara manual, bukan menggunakan API multi-cluster deklaratif untuk penemuan endpoint. Memindahkan penyiapan penemuan endpoint multi-cluster ke penerapan deklaratif. Informasi selengkapnya dapat dilihat di halaman Multi-cluster Secrets.
WORKLOAD_IDENTITY_REQUIRED Workload Identity tidak diaktifkan untuk cluster atau setidaknya salah satu node pool. Aktifkan workload identity di tingkat cluster dan node pool. Untuk mengetahui petunjuknya, lihat halaman Mengaktifkan workload identity.
MANAGED_CNI_NOT_ENABLED CNI Terkelola tidak diaktifkan untuk cluster ini. Aktifkan Managed CNI untuk mempertahankan praktik terbaik dalam mesh Anda. Informasi selengkapnya dapat dilihat di halaman Mengaktifkan CNI terkelola.
NON_STANDARD_SIDECAR_BINARY_USAGE Satu atau beberapa perintah dalam container Istio menggunakan biner selain `envoy`, `pilot_agent`, atau `iptables`. Menghapus dependensi pada biner yang tidak didukung. Informasi selengkapnya dapat dilihat di halaman Penggunaan biner yang tidak didukung.
UNSUPPORTED_GATEWAY_CLASS_USAGE Cluster dikonfigurasi dengan class gateway (Istio dan Anthos Service Mesh) yang memerlukan migrasi ke Istio Ingress Gateway agar sesuai dengan praktik terbaik. Lihat dokumentasi untuk mengetahui petunjuk mendetail
UNSUPPORTED_MULTIPLE_CONTROL_PLANES Cluster telah menyediakan beberapa saluran bidang kontrol. Cloud Service Mesh hanya mendukung satu saluran per cluster. Untuk mengetahui informasi selengkapnya, lihat Memperbaiki beberapa bidang kontrol.

Error Validasi Konfigurasi

Kode CONFIG_VALIDATION_WARNING dan CONFIG_VALIDATION_ERROR menunjukkan bahwa masalah ditemukan pada konfigurasi mesh (Istio atau Resource Kustom Kubernetes) dan sebagian konfigurasi mungkin belum diterapkan dengan benar.

Banyak detail error per resource ditulis ke resource yang berlaku. Perintah berikut dapat digunakan untuk menemukan konfigurasi yang tidak valid dan melihat pesan error tertentu. (Catatan: ini khusus untuk resource Istio, dan tidak semua error validasi dapat ditampilkan di sini).

for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
  do kubectl get $resource --all-namespaces --output=json | \
   jq  '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done

Outputnya mirip dengan:

{
  "name": "demo-envoy-filter",
  "namespace": "default",
  "kind": "EnvoyFilter",
  "conditions": [
    {
      "lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
      "message": "This API is not supported",
      "reason": "Invalid",
      "status": "False",
      "type": "Accepted"
    }
  ]
}