ALB Ingress Controller adalah ingress controller untuk kluster Kubernetes yang mengarahkan lalu lintas eksternal ke layanan internal. Saat Anda 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 | Cause | Solution |
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, tidak 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 Konfigurasi listener ALB menggunakan AlbConfig. |
listener is not exist in alb, port: 443, protocol: HTTPS | ||
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 diasosiasikan dengan ingress. Pesan kesalahan menampilkan listener yang hilang dan jumlah ingress yang terkait. | Untuk menghapus listener, Anda harus terlebih dahulu menghapus semua ingress yang terkait 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 sesuai untuk domain tersebut di Certificate Management Service. |
|
Secret "XXX" not found | Ingress mereferensikan Secret sertifikat TLS yang tidak ada di namespace yang ditentukan. Hal ini terutama memengaruhi konfigurasi HTTPS. Jika Secret yang direferensikan tidak ada, ALB Ingress Controller tidak dapat menyelesaikan konfigurasi sertifikat, dan pembaruan konfigurasi AlbConfig mungkin diblokir hingga masalah diselesaikan. | Pastikan Secret sertifikat ada di namespace yang sama dengan Ingress dan namanya persis sesuai dengan nilai yang ditentukan di bidang |
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 secret yang digunakan oleh ingress telah kedaluwarsa. Nama sertifikat dalam pesan kesalahan terdiri dari tiga bagian:
|
Untuk informasi selengkapnya tentang konfigurasi, lihat Konfigurasi sertifikat HTTPS untuk komunikasi terenkripsi. |
failed to createSSLCertificateWithName: XXX ErrorCode: NameRepeat Message: The name is already used. Please enter another name. | Sertifikat secret yang digunakan oleh ingress telah kedaluwarsa. Menggunakan kembali nama sertifikat yang 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 Implementasikan 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 adalah pengikatan yang salah antara IngressClass dan AlbConfig. Untuk informasi selengkapnya, lihat Gunakan IngressClass untuk mengasosiasikan AlbConfig dengan ingress dan periksa bahwa parameter spec.parameters di IngressClass mengarah ke nama objek resource AlbConfig yang benar.
Mengapa endpoint eksternal (Endpoint) ALB Ingress kosong atau alamat tidak dapat diperoleh, dan bagaimana cara menyelesaikannya?
Jika endpoint eksternal ALB Ingress kosong atau alamat tidak dapat diperoleh, periksa penyebab umum berikut dan lakukan tindakan yang sesuai:
IngressClass tidak ditentukan: Pastikan resource Ingress menentukan
ingressClassNameyang benar (misalnya,alb). JikaingressClassNametidak diatur atau nilainya tidak sesuai dengan IngressClass yang dikelola oleh ALB Ingress Controller, controller tidak akan memproses Ingress dan endpoint akan tetap kosong.Asosiasi AlbConfig salah: Periksa apakah IngressClass diasosiasikan dengan nama AlbConfig yang benar, dan verifikasi bahwa status AlbConfig normal. Asosiasi yang salah atau AlbConfig dalam status abnormal mencegah provisioning ALB. Untuk informasi selengkapnya, lihat Gunakan IngressClass untuk mengasosiasikan AlbConfig dengan ingress.
IP vSwitch tidak mencukupi: Periksa jumlah alamat IP yang tersedia di vSwitch yang diasosiasikan dengan AlbConfig. Untuk memastikan fitur elastis ALB didukung sepenuhnya, sediakan minimal 8 alamat IP di setiap vSwitch tempat instans ALB ditempatkan. Jika IP yang tersedia tidak mencukupi, ganti vSwitch atau perluas rentang CIDR vSwitch.
Zona ketersediaan tidak mencukupi: ALB memerlukan ketersediaan tinggi dan membutuhkan vSwitch di minimal dua zona ketersediaan berbeda. Jika hanya satu zona ketersediaan yang dikonfigurasi, tambahkan vSwitch di minimal satu zona ketersediaan lainnya.
Opsi instalasi komponen: Jika None dipilih selama instalasi komponen, tidak ada instans ALB atau AlbConfig yang dibuat secara otomatis. Anda harus membuat AlbConfig dan IngressClass secara manual dan mengasosiasikan AlbConfig dengan Ingress menggunakan IngressClass.