ALB Ingress Controller adalah ingress controller untuk kluster Kubernetes yang mengarahkan lalu lintas eksternal ke layanan internal. Saat menggunakan ALB Ingress untuk mengakses suatu layanan, ALB Ingress Controller memantau perubahan pada resource endpoint yang terkait dengan layanan tersebut, lalu menyinkronkan status node backend ke grup server backend yang sesuai dan menerapkan perubahan tersebut ke instans Application Load Balancer (ALB). Topik ini menjelaskan cara mendiagnosis dan menyelesaikan event anomali yang mungkin Anda temui saat menggunakan ALB Ingress.
Cara kerja
Saat Anda mengakses layanan melalui ALB Ingress, ALB Ingress Controller memantau perubahan berbagai resource dan menyinkronkan perubahan tersebut ke instans ALB yang terkait. Proses ini dapat gagal karena berbagai batasan atau kesalahan konfigurasi. Gambar berikut menunjukkan hubungan logis antara berbagai resource dan proses sinkronisasi.
Langkah 1: Periksa event anomali
Gunakan konsol: Di panel navigasi sebelah kiri, pilih . Pilih namespace target, klik nama ingress target untuk membuka halaman detailnya, lalu klik tab Events.
Gunakan kubectl:
kubectl describe ingress <ingress-name> -n <namespace>Output yang diharapkan:
... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedBuildModel 2m28s (x10 over 6m43s) ingress listener is not exist in alb, port: 443, protocol: HTTPS Normal Sync 19s (x32 over 11d) ingress Scheduled for sync Normal SuccessfullyReconciled 4s (x20 over 11d) ingress Successfully reconciled
Periksa informasi event terkait ingress di kolom Description atau bidang Message.
Scheduled for sync: menunjukkan bahwa event telah dimulai.Successfully reconciled: menunjukkan bahwa rekonsiliasi telah selesai.Untuk pesan
Warning, lihat Langkah 2 untuk memecahkan masalah tersebut.Jika tidak ada event anomali yang dilaporkan tetapi perubahan Anda tidak berlaku, lihat Apa yang harus saya lakukan jika perubahan pada ALB Ingress tidak berlaku tetapi tidak ada event anomali yang dilaporkan?
Langkah 2: Analisis dan selesaikan event anomali
Tabel berikut menjelaskan event anomali umum, penyebabnya, serta solusinya.
Untuk mencegah event anomali yang disebabkan oleh versi lama komponen ALB Ingress Controller yang tidak kompatibel dengan fitur baru, Anda dapat merujuk ke Catatan rilis dan upgrade komponen ke versi target sebelum melakukan diagnosis.
Message | Penyebab | Solusi |
listener is not exist in alb, port: 80, protocol: HTTP | Pada ALB Ingress Controller v2.11.0 dan yang lebih baru, listener untuk ingress hanya diasosiasikan, bukan dibuat secara otomatis. Kesalahan ini terjadi jika Anda menggunakan listener dalam ingress tanpa terlebih dahulu membuatnya di AlbConfig yang sesuai. | Untuk ALB Ingress Controller v2.11.0 atau yang lebih baru, buat listener yang diperlukan untuk resource ingress di AlbConfig. Untuk informasi selengkapnya, lihat Konfigurasikan listener ALB menggunakan AlbConfig. |
listener not found for (80/HTTP), with ingresses 1 | Pada ALB Ingress Controller v2.11.0 dan yang lebih baru, kesalahan ini terjadi jika Anda menghapus listener dari AlbConfig yang masih terasosiasi dengan ingress. Pesan kesalahan menampilkan listener yang hilang dan jumlah ingress yang terkait. | Untuk menghapus listener, Anda harus terlebih dahulu menghapus semua ingress yang terasosiasi dengannya. Penting Jika Anda menghapus listener secara tidak sengaja, Anda harus menambahkannya kembali. |
none certificate found for host | TLS diaktifkan dan auto-discovery sertifikat aktif untuk domain tersebut, tetapi tidak ada sertifikat yang cocok untuk domain tersebut di Certificate Management Service. |
|
The param of Rules.1.RuleConditions.2.PathConfig.Values.1 is illegal | Aturan routing berisi parameter path yang tidak valid. |
|
The param of ServerGroupName is illegal | Nama grup server backend ALB memiliki format yang tidak valid. | Pastikan nama grup server menggunakan format yang benar. Controller menghasilkan nama grup server dalam format |
The specified resource sgp-vz2fb219vv792flx3u is in use | Grup server backend ALB yang dikelola ACK direferensikan oleh instans ALB lain. | Masuk ke Konsol Application Load Balancer. Di panel navigasi sebelah kiri, pilih . Di halaman Server Group, temukan grup server backend target dan putuskan asosiasi instans ALB sesuai kebutuhan. |
Message: Invalid parameter. Check the parameter input. | Kesalahan ini sering terjadi jika Anda salah mengonfigurasi ID sertifikat saat menentukan sertifikat di AlbConfig. | Periksa apakah ID resource atau ID numerik digunakan sebagai ID sertifikat. Anda harus menggunakan ID sertifikat yang ditentukan oleh CertIdentifier. |
Message: Failed to create SSL Certificate with name default-https-secret-1-b585e6 ({namespace}-{name}-{identity}). Error: The certificate has expired . | Sertifikat rahasia yang digunakan oleh ingress telah kedaluwarsa. Nama sertifikat dalam pesan kesalahan terdiri dari tiga bagian:
|
Untuk informasi selengkapnya tentang konfigurasi, lihat Konfigurasikan sertifikat HTTPS untuk komunikasi terenkripsi. |
failed to createSSLCertificateWithName: XXX ErrorCode: NameRepeat Message: The name is already used. Please enter another name. | Sertifikat rahasia yang digunakan oleh ingress telah kedaluwarsa. Menggunakan kembali nama sertifikat kedaluwarsa saat mengunggah sertifikat baru menyebabkan konflik nama sertifikat SSL. | |
invalid server group Cookie: |
| Saat menggunakan metode penulisan ulang cookie, Anda harus mengonfigurasi nilai cookie. Untuk informasi selengkapnya tentang parameter, lihat Terapkan persistensi sesi menggunakan anotasi. |
| ||
The quota of alb_quota_server_added_num is exceeded for resource eni-xxxx, usage 202/200 | Kuota | Tingkatkan kuota grup server di Quota Center. |
FAQ
Perubahan ALB Ingress tidak berlaku
Jika controller tidak memicu event rekonsiliasi untuk AlbConfig atau gagal memproses event perubahan, penyebabnya mungkin pengikatan yang salah antara IngressClass dan AlbConfig. Untuk informasi selengkapnya, lihat Gunakan IngressClass untuk mengasosiasikan AlbConfig dengan ingress dan pastikan parameter spec.parameters di IngressClass mengarah ke nama objek resource AlbConfig yang benar.