ACK menyediakan fitur diagnostik Ingress untuk membantu memecahkan masalah umum pada Ingress. Topik ini menjelaskan item pemeriksaan diagnostik beserta Solusi perbaikan yang sesuai untuk resource Ingress, add-on, dan Server Load Balancer (SLB).
Penting
Diagnostik Ingress menjalankan program pengumpulan data pada setiap node, mencakup versi sistem, status beban, status Docker, status kubelet, dan entri error utama dalam log sistem. Tidak ada data bisnis atau informasi sensitif yang dikumpulkan.
Catatan
Item diagnostik yang tersedia bergantung pada konfigurasi kluster Anda. Item yang ditampilkan pada halaman diagnostik bersifat otoritatif.
Kategori diagnostik
| Kategori | Yang diperiksa |
|---|---|
| Ingress | Ketersediaan resource Ingress |
| Add-on | Parameter startup controller Ingress, Service terkait, dan Pod Ingress |
| SLB | Status instans SLB, termasuk jumlah koneksi maksimum, QPS, dan status kesehatan |
Ingress
| Item diagnostik | Deskripsi | Solusi |
|---|---|---|
| Pemeriksaan Ingress | Memeriksa keberadaan Ingress yang ditentukan. | Verifikasi bahwa aturan Ingress untuk URL tersebut ada. Jika ada, periksa detail aturannya, misalnya apakah regex ditetapkan sebagai path atau Anotasi use-regex telah dikonfigurasi. |
| Pemeriksaan base-url-scheme | Mendeteksi penggunaan Anotasi nginx.ingress.kubernetes.io/base-url-scheme yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.22.0. |
Periksa versi Ingress controller, lalu hapus Anotasi ini atau ganti dengan yang didukung. |
| Pemeriksaan grpc-backend | Mendeteksi penggunaan Anotasi nginx.ingress.kubernetes.io/grpc-backend yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.21.0. |
Periksa versi Ingress controller, lalu hapus Anotasi ini atau ganti dengan yang didukung. |
| Pemeriksaan mirror-uri | Mendeteksi penggunaan Anotasi nginx.ingress.kubernetes.io/mirror-uri yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.24.0. |
Periksa versi Ingress controller, lalu hapus Anotasi ini atau ganti dengan yang didukung. |
| secure-backends check | Mendeteksi penggunaan Anotasi nginx.ingress.kubernetes.io/secure-backends yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.21.0. |
Periksa versi Ingress controller, lalu hapus Anotasi ini atau ganti dengan yang didukung. |
| Pemeriksaan session-cookie-hash | Mendeteksi penggunaan Anotasi nginx.ingress.kubernetes.io/session-cookie-hash yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.24.0. |
Periksa versi Ingress controller, lalu hapus Anotasi ini atau ganti dengan yang didukung. |
| Pemeriksaan nginx.com/nginx.org | Mendeteksi Anotasi berawalan nginx.com/nginx.org. Anotasi ini khusus untuk NGINX Ingress controller komersial dan tidak dikenali oleh versi open-source. |
Ganti dengan Anotasi yang didukung oleh NGINX Ingress controller open-source. Lihat Manajemen NGINX Ingress atau dokumentasi resmi. |
| Status Canary | Memeriksa apakah nginx.ingress.kubernetes.io/canary: "true" telah dikonfigurasi. Tanpa Anotasi ini, fitur rilis canary tidak akan berlaku. |
Tambahkan Anotasi nginx.ingress.kubernetes.io/canary: "true" ke aturan Ingress untuk mengaktifkan routing canary. |
Add-on
| Item diagnostik | Deskripsi | Resolusi |
|---|---|---|
| Persentase Pod Ingress dalam status Ready | Memeriksa persentase Pod Ingress dalam status Ready. Nilai di bawah 100% dapat mengindikasikan adanya masalah. | Periksa log error untuk mengidentifikasi dan memperbaiki Pod yang bermasalah. Lihat Troubleshooting NGINX Ingress controller. |
| Pemeriksaan alamat IP Ingress | Memeriksa apakah Ingress controller telah menetapkan alamat IP ke Ingress. | Jika tidak ada IP yang ditetapkan, verifikasi bahwa Ingress controller direferensikan dalam IngressClass dan berjalan dengan benar. Perbaiki masalah berdasarkan hasil diagnostik. |
| Pemeriksaan Pod leader | Memeriksa apakah Pod leader telah dipilih. Tidak adanya Pod leader dapat mengindikasikan waktu startup yang tidak mencukupi atau izin Ingress controller yang salah konfigurasi. | Periksa log error Pod Ingress dan perbaiki error yang dilaporkan. Lihat Troubleshooting NGINX Ingress controller. |
| Anotasi NGINX Ingress yang salah | Memeriksa Anotasi berawalan nginx.com/nginx.org. Controller open-source hanya mengenali Anotasi berawalan nginx.ingress.kubernetes.io. Penggunaan awalan lain dapat membuat konfigurasi Anda tidak valid. |
Ganti dengan Anotasi yang didukung oleh controller open-source. Lihat Anotasi. |
| Penggunaan capture group bersama rewrite-target pada NGINX Ingress | Memeriksa apakah rewrite-target digunakan dengan capture group. Pada Ingress controller 0.22.0+, capture group harus ditentukan secara eksplisit dengan rewrite-target. Tanpanya, akan terjadi error penerusan traffic. |
Konfigurasikan Ingress dengan benar. Lihat Konfigurasi NGINX Ingress tingkat lanjut. |
| Aturan canary NGINX Ingress | Memeriksa apakah lebih dari dua layanan ditentukan dalam service-match atau service-weight. Setiap bidang mendistribusikan traffic tepat di antara dua layanan. Layanan tambahan akan diabaikan, menyebabkan routing yang tidak terduga. |
Batasi service-match atau service-weight hingga maksimal dua layanan. |
| Nama Ingress | Menampilkan nama aturan Ingress yang sesuai. | Tidak ada. |
| Log error Pod | Memeriksa apakah Pod Ingress controller menghasilkan log error, yang menandakan controller mungkin tidak berjalan sebagaimana mestinya. | Tinjau log error untuk mengidentifikasi dan memperbaiki masalah. Lihat Troubleshooting NGINX Ingress controller. |
| Penggunaan capture group dalam path rewrite-target | Memeriksa apakah capture group ditentukan dalam nginx.ingress.kubernetes.io/rewrite-target. Pada Ingress controller 0.22.0+, capture group wajib diisi; tanpanya, error path dapat terjadi. |
Konfigurasikan Ingress dengan benar. Lihat Mengonfigurasi aturan routing untuk mengalihkan traffic dari URL tertentu. |
| Multiple target dalam service-* | Memeriksa apakah lebih dari dua layanan ditentukan dalam service-match atau service-weight. Traffic hanya dapat didistribusikan antara dua layanan sekaligus. |
Batasi service-weight atau service-match ke dua layanan. Lihat Menggunakan NGINX Ingress controller untuk menerapkan rilis canary dan penyebaran biru-hijau. |
| Pemeriksaan Service Ingress | Memeriksa apakah layanan dalam parameter startup Ingress controller ada. Layanan yang hilang mencegah controller untuk memulai. | Temukan layanan yang hilang dalam parameter startup Deployment dan pulihkan. Lihat Operasi berisiko tinggi terkait jaringan dan instans SLB. |
| Pemeriksaan endpoint Service Ingress | Memeriksa apakah layanan yang terkait dengan Ingress memiliki endpoint. Tanpa endpoint, SLB tidak dapat merutekan traffic ke controller. | Verifikasi bahwa pemilih label pada layanan sesuai dengan Pod yang benar. |
| Event Service Ingress | Memeriksa apakah layanan yang terkait dengan Ingress memiliki event Warning atau Error, yang sering kali mengindikasikan kesalahan konfigurasi SLB. | Tinjau event layanan untuk mengidentifikasi dan memperbaiki penyebabnya. Lihat Error Service dan solusinya. |
| Kebijakan traffic eksternal Service Ingress | Memeriksa Kebijakan traffic eksternal layanan. Defaultnya adalah Local; mode Cluster mungkin tidak mempertahankan IP client, menyebabkan hasil health check yang tidak akurat. | Gunakan mode Local kecuali workload Anda memerlukan mode Cluster atau membutuhkan akses IP SLB dari dalam kluster. |
| Alamat IP eksternal Service Ingress | Memeriksa apakah cloud controller manager telah menetapkan IP eksternal ke layanan. Tanpanya, Ingress tidak dapat menerima traffic Internet. | Periksa status layanan, cloud controller manager, dan kuota SLB. Sebagian besar masalah muncul sebagai event layanan. |
| Tipe Service Ingress (LoadBalancer) | Memeriksa apakah layanan dalam parameter startup Ingress controller bertipe LoadBalancer. Tipe yang berbeda membuat controller tidak dapat diakses dari Internet. | Ubah tipe layanan menjadi LoadBalancer kecuali akses Internet tidak diperlukan. |
| --force-namespace-isolation check | Mendeteksi penggunaan parameter startup --force-namespace-isolation yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.24.0. |
Periksa versi Ingress controller, lalu hapus parameter startup ini. |
| --sort-backends check | Mendeteksi penggunaan parameter startup --sort-backends yang sudah tidak digunakan lagi (deprecated) sejak Ingress controller 0.22.0. |
Periksa versi Ingress controller, lalu hapus parameter startup ini. |
SLB
| Item diagnostik | Deskripsi | Solusi |
|---|---|---|
| Instans SLB | Memeriksa apakah Instans SLB yang digunakan oleh Ingress controller ada. | Jika hilang, periksa event layanan terkait dan konsol SLB. Jika terhapus secara tidak sengaja, buat ulang layanan untuk menyediakan Instans baru. Lihat Apa yang harus saya lakukan jika tidak sengaja menghapus instans SLB? |
| Kesehatan server backend instans SLB Ingress controller | Memeriksa status kesehatan server backend SLB. | Jika tidak sehat, tinjau event layanan dan periksa apakah Pod controller kelebihan beban. Lihat Troubleshooting NGINX Ingress controller. |
| ID SLB | Menampilkan ID Instans SLB. | Tidak ada. |
| Koneksi instans SLB Ingress controller | Memeriksa apakah koneksi SLB selama tiga hari terakhir melebihi 80% dari batas. Mencapai batas akan memblokir koneksi client baru. | Jika mencapai batas, lakukan upgrade Instans SLB untuk menghindari gangguan layanan. Lihat Menggunakan instans SLB yang sudah ada. |
| Laju koneksi baru instans SLB Ingress controller | Memeriksa apakah laju koneksi baru SLB selama tiga hari terakhir melebihi 80% dari batas. Mencapai batas akan memblokir koneksi baru untuk sementara. | Jika mencapai batas, lakukan upgrade Instans SLB untuk menghindari gangguan layanan. Lihat Menggunakan instans SLB yang sudah ada. |
| QPS instans SLB Ingress controller | Memeriksa apakah QPS SLB selama tiga hari terakhir melebihi 80% dari batas. Mencapai batas akan memblokir koneksi client. | Jika mencapai batas, lakukan upgrade Instans SLB untuk menghindari gangguan layanan. Lihat Menggunakan instans SLB yang sudah ada. |
| Host dan SecretName untuk TLS | Memeriksa apakah Host dan SecretName keduanya ditentukan dalam konfigurasi TLS Ingress. |
Tentukan Host dan SecretName. Pastikan nilai Host sesuai dengan hostname dalam sertifikat. |
| Health check SLB Ingress controller | Memeriksa apakah Instans SLB gagal melakukan health check selama tiga hari terakhir. Kegagalan menunjukkan Pod controller kelebihan beban atau kesalahan konfigurasi SLB. | Jika terjadi kegagalan, tinjau event layanan dan verifikasi bahwa controller tidak kelebihan beban. Lihat Troubleshooting NGINX Ingress controller. |