Konsol Container Service for Kubernetes (ACK) menyediakan fitur diagnosis Ingress untuk membantu Anda mendiagnosis masalah umum terkait Ingress. Topik ini menjelaskan item diagnostik Ingress serta memberikan saran untuk memperbaiki masalah tersebut.
Item diagnostik dalam diagnosis Ingress mencakup Ingress, parameter startup, log kesalahan pod Ingress, dan instance Server Load Balancer (SLB) dari controller Ingress.
Saat menggunakan fitur diagnosis, ACK menjalankan program pengumpulan data di setiap node dalam kluster dan mengumpulkan hasil diagnosis. Informasi yang dikumpulkan mencakup versi sistem, status beban, Docker, kubelet, serta informasi kesalahan utama dalam log sistem. ACK tidak mengumpulkan informasi bisnis atau data sensitif.
Item diagnostik Ingress
Item diagnostik dapat bervariasi berdasarkan konfigurasi kluster. Item diagnostik aktual pada halaman diagnosis yang akan berlaku.
Kategori | Deskripsi |
Periksa ketersediaan sumber daya Ingress. | |
Periksa parameter startup komponen Ingress, Service yang terkait dengan Ingress, dan pod Ingress. | |
Periksa status instance SLB yang digunakan oleh controller Ingress, jumlah maksimum koneksi, QPS, dan status kesehatan. |
Ingress
Item Diagnostik | Deskripsi | Cara Memperbaiki |
Pemeriksaan Ingress | Periksa apakah Ingress yang ditentukan tersedia. | Periksa apakah aturan Ingress telah dibuat untuk URL tertentu. Jika URL valid, tinjau aturan Ingress, misalnya, apakah ekspresi reguler digunakan sebagai jalur atau anotasi use-regex diterapkan. |
Pemeriksaan base-url-scheme | Periksa apakah anotasi | Periksa versi controller Ingress, lalu hapus anotasi atau gunakan anotasi lain. |
Pemeriksaan grpc-backend | Periksa apakah anotasi | Periksa versi controller Ingress, lalu hapus anotasi atau gunakan anotasi lain. |
Pemeriksaan mirror-uri | Periksa apakah anotasi | Periksa versi controller Ingress, lalu hapus anotasi atau gunakan anotasi lain. |
Pemeriksaan secure-backends | Periksa apakah anotasi | Periksa versi controller Ingress, lalu hapus anotasi atau gunakan anotasi lain. |
Pemeriksaan session-cookie-hash | Periksa apakah anotasi | Periksa versi controller Ingress, lalu hapus anotasi atau gunakan anotasi lain. |
Pemeriksaan nginx.com/nginx.org | Periksa apakah Ingress menggunakan anotasi yang dimulai dengan | Gunakan anotasi yang didukung oleh versi open source NGINX Ingress controller. Untuk informasi lebih lanjut tentang Ingresses, lihat Manajemen NGINX Ingress atau NGINX Ingress Controller di situs resmi. |
Status Canary | Untuk menggunakan fitur Canary, Anda harus menentukan | Untuk mengaktifkan fitur Canary untuk Ingress, tambahkan anotasi |
Addon
Item Diagnostik | Deskripsi | Cara Memperbaiki |
Persentase Pod Ingress dalam Status Ready | Periksa persentase pod yang berada dalam status Ready dibandingkan dengan pod yang dibuat oleh Deployment Ingress. Jika nilainya kurang dari 100%, beberapa pod Ingress gagal memulai atau melewati pemeriksaan kesehatan. | Periksa log kesalahan untuk menemukan pod yang bermasalah dan perbaiki masalah tersebut. Untuk informasi lebih lanjut tentang pemecahan masalah Ingress, lihat Pemecahan Masalah NGINX Ingress Controller. |
Pemeriksaan Alamat IP Ingress | Periksa apakah controller Ingress mengalokasikan alamat IP ke Ingress. | Jika tidak ada alamat IP yang dialokasikan, periksa apakah controller Ingress ada di IngressClass dari Ingress dan apakah controller Ingress berfungsi dengan normal. Perbaiki masalah berdasarkan hasil diagnosis. |
Pemeriksaan Pod Pemimpin | Periksa apakah pod pemimpin dipilih. Jika tidak ada pod pemimpin yang dipilih, waktu startup pod mungkin terlalu singkat atau izin controller Ingress tidak dikonfigurasi dengan benar. | Periksa apakah pod Ingress menghasilkan log kesalahan dan perbaiki masalah yang ditunjukkan dalam log kesalahan. Untuk informasi lebih lanjut tentang pemecahan masalah Ingress, lihat Pemecahan Masalah NGINX Ingress Controller. |
Anotasi yang Digunakan oleh NGINX Ingresses | Versi open source NGINX Ingress controller menggunakan anotasi yang dimulai dengan | Gunakan anotasi yang didukung oleh versi open source NGINX Ingress controller. Untuk informasi lebih lanjut tentang anotasi, lihat Anotasi. |
Penggunaan Grup Penangkap dengan Rewrite-target di NGINX Ingresses | Periksa apakah anotasi rewrite-target di NGINX Ingresses digunakan bersama dengan grup penangkap. Di Ingress controller 0.22.0 dan versi lebih baru, Anda perlu secara eksplisit menentukan grup penangkap saat menggunakan anotasi rewrite-target. Jika tidak, kesalahan pengalihan lalu lintas akan terjadi. | Konfigurasikan Ingresses dengan benar. Untuk informasi lebih lanjut tentang konfigurasi Ingress, lihat Konfigurasi Lanjutan NGINX Ingress. |
Aturan Canary NGINX Ingress | Periksa apakah tidak lebih dari dua Layanan ditentukan dalam service-match atau service-weight. Anda dapat menentukan service-match atau service-weight untuk mendistribusikan lalu lintas antara hanya dua Layanan. Jika Anda menentukan lebih dari dua Layanan, Layanan berlebih akan diabaikan. Akibatnya, pengalihan lalu lintas mungkin tidak sesuai dengan kebutuhan Anda. | Atur ulang jumlah Layanan. |
Nama Ingress | Tampilkan nama aturan Ingress yang cocok. | Tidak ada. |
Log Kesalahan Pod | Periksa apakah pod controller Ingress menghasilkan log kesalahan. Saat log kesalahan dihasilkan, controller Ingress mungkin tidak berjalan seperti yang diharapkan. | Lokasikan penyebab dan perbaiki masalah berdasarkan log kesalahan. Untuk informasi lebih lanjut tentang pemecahan masalah Ingress, lihat Pemecahan Masalah NGINX Ingress Controller. |
Penggunaan Grup Penangkap dalam Jalur Rewrite-target | Di Ingress controller 0.22.0 dan versi lebih baru, jika Anda ingin menggunakan anotasi | Konfigurasikan Ingresses dengan benar. Untuk informasi lebih lanjut tentang Ingresses, lihat Konfigurasikan Aturan Routing untuk Mengarahkan Lalu Lintas dari URL Tertentu. |
Target Ganda dalam service-* | Anda dapat menentukan service-match atau service-weight untuk mendistribusikan lalu lintas antara hanya dua Layanan. | Tentukan hanya dua Layanan dalam service-weight atau service-match. Untuk informasi lebih lanjut, lihat Gunakan NGINX Ingress Controller untuk Menerapkan Rilis Canary dan Penyebaran Biru-Hijau. |
Pemeriksaan Layanan Ingress | Periksa apakah Layanan yang ditentukan dalam parameter startup Ingress ada. Jika Layanan dihapus, Ingress mungkin gagal memulai. | Periksa nama Layanan yang dihapus dalam parameter startup Deployment dan perbaiki masalah tersebut. Untuk informasi lebih lanjut, lihat Operasi Berisiko Tinggi Terkait Jaringan dan Instance SLB. |
Pemeriksaan Titik Akhir Layanan Ingress | Periksa apakah Layanan yang terkait dengan Ingress memiliki titik akhir. Jika Layanan tidak memiliki titik akhir, instance SLB tidak dapat merutekan lalu lintas ke controller Ingress. | Periksa apakah pemilih label Layanan berfungsi dengan normal. |
Acara Layanan Ingress | Periksa apakah Layanan yang terkait dengan Ingress menghasilkan acara Warning atau Error. Masalah ini mungkin disebabkan oleh kesalahan konfigurasi SLB. | Periksa acara Layanan, lokasikan penyebab, dan kemudian perbaiki masalah tersebut. Untuk informasi lebih lanjut tentang pemecahan masalah Layanan, lihat Kesalahan Layanan dan Solusi. |
Kebijakan Lalu Lintas Eksternal Layanan Ingress | Kebijakan lalu lintas eksternal menentukan bagaimana lalu lintas eksternal didistribusikan di kluster. Kebijakan lalu lintas eksternal default adalah Lokal. Anda juga dapat mengaturnya ke Kluster. Kami merekomendasikan Anda menggunakan mode Lokal. Dalam mode Kluster, alamat IP klien mungkin tidak dipertahankan. Akibatnya, hasil pemeriksaan kesehatan mungkin salah. | Peringatan sebelumnya tidak berlaku jika bisnis Anda memerlukan mode Kluster atau Anda ingin mengakses controller Ingress melalui alamat IP instance SLB dari dalam kluster. |
Alamat IP Eksternal Layanan Ingress | Periksa apakah cloud controller manager menetapkan alamat IP ke Layanan yang terkait dengan Ingress. Jika tidak ada alamat IP yang ditetapkan, Ingress mungkin tidak dapat mengakses Internet. | Pastikan status Layanan, status cloud controller manager, dan kuota SLB normal. Sebagian besar masalah terungkap melalui acara. |
Tipe Layanan Ingress (Server Load Balancer) | Periksa apakah tipe Layanan yang ditentukan dalam parameter startup Ingress adalah LoadBalancer. Jika tipe Layanan bukan LoadBalancer, controller Ingress mungkin tidak dapat diakses melalui Internet. | Peringatan sebelumnya tidak berlaku jika bisnis Anda tidak memerlukan Layanan tipe LoadBalancer. Jika diperlukan, ubah tipe Layanan menjadi LoadBalancer. |
Pemeriksaan --force-namespace-isolation | Periksa apakah parameter startup | Periksa versi controller Ingress dan hapus parameter startup. |
Pemeriksaan --sort-backends | Periksa apakah parameter startup | Periksa versi controller Ingress dan hapus parameter startup. |
SLB
Item Diagnostik | Deskripsi | Cara Memperbaiki |
Instance SLB | Periksa apakah instance SLB dari controller Ingress tersedia. | Periksa apakah Layanan yang ditentukan dalam Ingress Controller ada, apakah Layanan menghasilkan acara anomali, dan apakah instance SLB tersedia di konsol SLB. Jika instance SLB terhapus secara tidak sengaja, buat ulang Layanan untuk memperbaiki masalah. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika saya secara tidak sengaja menghapus instance SLB? |
Kesehatan Server Backend Instance SLB Controller Ingress | Periksa status kesehatan server backend instance SLB. | Jika server backend instance SLB tidak sehat, periksa apakah Layanan yang ditentukan dalam controller Ingress menghasilkan acara anomali dan apakah komponen kelebihan beban. Untuk informasi lebih lanjut tentang pemecahan masalah komponen, lihat Pemecahan Masalah NGINX Ingress Controller. |
ID SLB | Tampilkan ID instance SLB. | Tidak ada. |
Koneksi Instance SLB Controller Ingress | Periksa apakah jumlah koneksi pada instance SLB dalam tiga hari terakhir melebihi 80% dari batas atas. Jika jumlah koneksi mencapai batas atas, klien tidak dapat membuat koneksi ke instance SLB. | Jika jumlah koneksi pada instance SLB telah mencapai batas atas, tingkatkan instance SLB untuk menghindari gangguan bisnis. Untuk informasi lebih lanjut, lihat Gunakan Instance SLB yang Sudah Ada. |
Laju Koneksi Baru Instance SLB Controller Ingress | Periksa apakah laju koneksi baru pada instance SLB dalam tiga hari terakhir melebihi 80% dari batas atas. Jika laju mencapai batas atas, klien tidak dapat membuat koneksi baru ke instance SLB dalam waktu singkat. | Jika laju koneksi baru pada instance SLB telah mencapai batas atas, tingkatkan instance SLB untuk menghindari gangguan bisnis. Untuk informasi lebih lanjut, lihat Gunakan Instance SLB yang Sudah Ada. |
Nilai QPS Instance SLB Controller Ingress | Periksa apakah nilai QPS instance SLB dalam tiga hari terakhir melebihi 80% dari batas atas. Jika nilai QPS mencapai batas atas, klien tidak dapat terhubung ke instance SLB. | Jika nilai QPS instance SLB telah mencapai batas atas, tingkatkan instance SLB untuk menghindari gangguan bisnis. Untuk informasi lebih lanjut, lihat Gunakan Instance SLB yang Sudah Ada. |
Host dan SecretName untuk TLS | Anda perlu menentukan parameter Host dan SecretName saat mengonfigurasi Ingress TLS. | Tentukan parameter Host dan SecretName dan pastikan bahwa host sama dengan yang ada di sertifikat. |
Pemeriksaan Kesehatan SLB Controller Ingress | Periksa apakah instance SLB gagal melewati pemeriksaan kesehatan dalam tiga hari terakhir. Masalah ini terjadi ketika komponen kelebihan beban atau konfigurasi SLB mengandung kesalahan. | Jika instance SLB gagal melewati pemeriksaan kesehatan dalam tiga hari terakhir, untuk mencegah gangguan bisnis, periksa apakah Layanan yang ditentukan dalam controller Ingress menghasilkan acara anomali dan apakah komponen kelebihan beban. Untuk informasi lebih lanjut tentang pemecahan masalah komponen, lihat Pemecahan Masalah NGINX Ingress Controller. |