Setelah meningkatkan kluster, Anda mungkin perlu memperbarui NGINX Ingress Controller karena beberapa API di versi Kubernetes baru sudah tidak digunakan lagi. Pembaruan ini direkomendasikan untuk memastikan stabilitas, keamanan, serta akses ke fitur terbaru.
Prosedur
Pastikan stabilitas NGINX Ingress Controller karena ini merupakan komponen kunci dari data plane.
Masalah ketidakcocokan dapat terjadi jika Anda memperbarui NGINX Ingress Controller ke versi terbaru. Versi terbaru mencakup perubahan signifikan, termasuk perubahan kustom yang substansial. Selain itu, pembaruan langsung membawa risiko lebih tinggi karena masalah ketidakcocokan mungkin tidak segera terdeteksi setelah pembaruan.
Berbeda dengan komponen lainnya, NGINX Ingress Controller diperbarui secara bertahap. Hal ini memungkinkan Anda memeriksa status beban kerja dan mengembalikan pembaruan jika terjadi pengecualian.
Fase 1: Precheck
Sistem secara otomatis melakukan precheck pada NGINX Ingress controller sebelum pembaruan untuk memverifikasi kepatuhan dengan persyaratan. Jika NGINX Ingress controller tidak memenuhi prasyarat atau status komponen tidak sehat, Anda harus memperbaiki masalah tersebut secara manual sebelum dapat memperbarui komponen.
Fase 2: Verifikasi
Sebuah pod dibuat untuk versi baru NGINX Ingress Controller. Pod ini digunakan untuk memverifikasi status dan aturan Ingress versi baru. Setelah pod dibuat, sebagian lalu lintas pengguna didistribusikan ke pod tersebut. Anda dapat menganalisis log kontainer atau menggunakan Layanan Log Sederhana atau Managed Service for Prometheus untuk memeriksa apakah lalu lintas pengguna diproses sesuai harapan.
Setelah pod dibuat untuk versi baru, proses pembaruan dijeda. Setelah Anda mengonfirmasi bahwa tidak ada pengecualian yang terjadi pada komponen dan beban kerja, Anda dapat melanjutkan proses pembaruan secara manual. Jika Anda mengidentifikasi pengecualian, Anda dapat mengembalikan pembaruan dan menghapus pod untuk versi baru.
Untuk mengembalikan pembaruan, modifikasi parameter spec.minReadySeconds dan spec.strategy dalam Deployment.
Fase 3: Rilis
Pembaruan bergulir dilakukan selama fase rilis untuk mengganti versi lama NGINX Ingress Controller dengan versi baru. Setelah semua pod NGINX Ingress Controller diperbarui, proses pembaruan dijeda untuk memungkinkan Anda memeriksa status komponen dan beban kerja. Setelah Anda mengonfirmasi bahwa tidak ada pengecualian yang terjadi, Anda dapat menyelesaikan pembaruan. Jika Anda mengidentifikasi pengecualian, Anda dapat mengembalikan NGINX Ingress Controller di semua pod ke versi lama dan kemudian mengakhiri pembaruan.
Fase 4: Pengembalian (opsional)
Proses pembaruan secara otomatis dijeda selama fase verifikasi dan rilis untuk memungkinkan Anda mengidentifikasi pengecualian yang terjadi selama pembaruan. Jika Anda mengidentifikasi pengecualian, Anda dapat mengembalikan NGINX Ingress Controller ke versi lama.
Prasyarat
Sebelum memperbarui NGINX Ingress Controller, pastikan Anda memiliki cara untuk memantau lalu lintas bisnis dan mengidentifikasi pengecualian. Anda dapat menggunakan Layanan Log Sederhana atau Managed Service for Prometheus untuk memantau lalu lintas bisnis. Untuk informasi lebih lanjut, lihat Analisis dan pantau log akses nginx-ingress-controller dan Gunakan Managed Service for Prometheus.
Pastikan status NGINX Ingress Controller sehat, semua pod NGINX Ingress Controller berada dalam keadaan Siap, dan tidak ada log kesalahan yang dihasilkan.
Pastikan tidak ada aturan penskalaan otomatis, seperti HorizontalPodAutoscaler (HPA), yang digunakan. Jika aturan penskalaan otomatis ada, hapus aturan tersebut, selesaikan pembaruan, dan buat ulang aturan.
Pastikan Layanan LoadBalancer berjalan sesuai harapan.
Jangan modifikasi NGINX Ingress Controller atau aturan Ingress selama pembaruan.
Jika versi NGINX Ingress Anda lebih awal dari 0.44, perhatikan perbedaan dalam pencocokan awalan saat Anda memperbaruinya. Untuk informasi lebih lanjut, lihat Catatan Pembaruan.
Pastikan kluster memiliki node yang cukup untuk memungkinkan pod NGINX Ingress dibuat dan dijadwalkan dengan benar. Komponen diperbarui menggunakan strategi rilis canary. Pertama, pod yang menjalankan versi target NGINX Ingress dibuat. Setelah lalu lintas diverifikasi, klik Continue untuk memicu pembaruan bergulir.
Prosedur
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.
Di halaman Add-ons, temukan NGINX Ingress Controller dan klik Upgrade di bagian kanan bawah.
Di halaman yang muncul, konfirmasikan informasi dan klik Start untuk memulai pembaruan.
CatatanAnda dapat kembali ke halaman pembaruan kapan saja selama proses pembaruan, atau klik Progress di halaman Add-ons untuk melihat kemajuan pembaruan.
Precheck dilakukan di Fase 1. Setelah precheck selesai, pembaruan secara otomatis berlanjut ke Fase 2.
Jika NGINX Ingress Controller gagal melewati precheck, Anda dapat mengklik View Details di bawah Precheck untuk pergi ke halaman View Report. Kemudian, perbaiki masalah yang ditampilkan di halaman ini. Untuk informasi lebih lanjut, lihat bagian Precheck dari topik ini. Setelah Anda memperbaiki masalah, klik Retry untuk memulai pembaruan ulang.
Setelah fase verifikasi berakhir, proses pembaruan dijeda. Anda dapat memeriksa status NGINX Ingress Controller dan beban kerja. Untuk informasi lebih lanjut, lihat bagian Verifikasi dari topik ini.
Untuk informasi lebih lanjut tentang cara memperbaiki masalah bahwa pod gagal dibuat, lihat bagian Apa yang harus saya lakukan jika pod gagal dibuat selama fase verifikasi dan rilis? dari topik ini. Anda juga dapat menganalisis log kesalahan pod untuk mengidentifikasi penyebab kegagalan memulai pod. Setelah Anda memperbaiki masalah, klik Retry untuk melakukan verifikasi ulang.
Jika pengecualian terjadi pada beban kerja Anda, klik Roll Back untuk mengembalikan pembaruan. Setelah pengembalian selesai, proses pembaruan berakhir. Anda dapat mengklik Upgrade di halaman Add-ons untuk memulai pembaruan ulang.
Setelah verifikasi berhasil, klik Continue untuk melanjutkan ke fase rilis. Setelah pembaruan bergulir selama fase rilis selesai, proses pembaruan dijeda. Anda dapat memeriksa status NGINX Ingress Controller dan beban kerja. Jika pengecualian terjadi pada beban kerja Anda, klik Roll Back untuk mengembalikan pembaruan. Setelah pengembalian selesai, proses pembaruan berakhir. Anda dapat mengklik Tingkatkan di halaman Add-ons untuk memulai pembaruan ulang.
Jika tidak ada pengecualian yang terjadi, klik Continue untuk menyelesaikan pembaruan.
CatatanPastikan bahwa proses pembaruan selesai dalam satu minggu.
Precheck
Tabel Precheck
Item Pemeriksaan | Konten | Pemecahan Masalah |
Deployment Exist | Periksa apakah Deployment (kube-system/nginx-ingress-controller) dari NGINX Ingress Controller ada. | T/A |
Deployment Sehat | Periksa apakah semua pod yang dikendalikan oleh Deployment NGINX Ingress Controller berada dalam keadaan Siap. Pastikan bahwa pod-pod ini tidak sedang melakukan pembaruan bergulir atau berjalan dalam keadaan tidak stabil lainnya. | T/A |
Log Kesalahan | Periksa 200 entri log terbaru dalam log kesalahan pod. Pastikan tidak ada kesalahan dengan tingkat keparahan Error atau Fatal. | Jika kesalahan di atas ada, pengecualian baru-baru ini terjadi pada NGINX Ingress Controller karena konfigurasi yang tidak valid. Anda harus memperbaiki masalah tersebut dan kemudian memulai pembaruan ulang. Untuk informasi lebih lanjut, lihat Pemecahan Masalah NGINX Ingress Controller. |
Layanan LoadBalancer Sehat | Periksa apakah Layanan LoadBalancer (kube-system/nginx-ingress-lb) dari NGINX Ingress Controller ada. Jika Layanan LoadBalancer ada, periksa apakah acara kesalahan dihasilkan untuk Layanan LoadBalancer. Jika Layanan LoadBalancer tidak ada, acara Peringatan dihasilkan. | Jika Layanan LoadBalancer tidak ada, lihat solusi untuk masalah "Hapus secara manual Jika acara kesalahan dihasilkan untuk Layanan LoadBalancer, selesaikan masalah berdasarkan isi acara tersebut. Untuk informasi lebih lanjut, lihat bagian Kesalahan Layanan dan Solusi dari topik "Pemecahan Masalah Layanan". Item pemeriksaan ini dilewati jika jenis Layanan bukan LoadBalancer. |
HPA | Periksa apakah Deployment NGINX Ingress Controller menggunakan HPA. HPA dapat memicu aktivitas penskalaan selama proses pembaruan dan memengaruhi pembaruan secara negatif. | Oleh karena itu, Anda harus menghapus sumber daya HPA dari kluster sebelum Anda memperbarui NGINX Ingress Controller dan kemudian mengonfigurasi ulang HPA setelah pembaruan selesai. |
Deployment | Periksa apakah Deployment NGINX Ingress Controller hanya mencakup perubahan yang kompatibel. | Pembaruan tidak dapat mempertahankan perubahan kustom yang Anda buat pada Deployment NGINX Ingress Controller.
Memodifikasi parameter di atas dalam Deployment NGINX Ingress Controller tidak menyebabkan item pemeriksaan ini menunjukkan GAGAL. Jika Anda membuat perubahan pada Deployment selain parameter di atas, menggunakan versi lama, atau memperbarui NGINX Ingress Controller tanpa memenuhi semua persyaratan pembaruan, item pemeriksaan ini menunjukkan GAGAL. Daftar berikut menjelaskan alasan umum mengapa item pemeriksaan ini menunjukkan GAGAL:
Jika item pemeriksaan ini menunjukkan GAGAL, Anda dapat memulihkan template Deployment secara manual. Untuk informasi lebih lanjut, lihat bagian Apa yang harus saya lakukan jika template Deployment gagal melewati pemeriksaan? dari topik ini. |
Konfigurasi Ingress | Periksa apakah Ingress dalam kluster hanya mencakup fitur yang kompatibel. | Jika Ingress dalam kluster menggunakan fitur yang tidak kompatibel, NGINX Ingress Controller mungkin gagal mendistribusikan lalu lintas pengguna sesuai harapan setelah NGINX Ingress Controller diperbarui. Akibatnya, gangguan layanan mungkin terjadi. Untuk informasi lebih lanjut tentang cara memperbaiki masalah kompatibilitas terkait Ingress, lihat bagian Masalah Kompatibilitas dari topik ini. |
Konfigurasi Komponen | Periksa apakah ConfigMap nginx-configuration di namespace kube-system berisi konfigurasi yang tidak kompatibel. | Jika ConfigMap berisi konfigurasi yang tidak kompatibel, NGINX Ingress Controller mungkin gagal mendistribusikan lalu lintas pengguna sesuai harapan setelah NGINX Ingress Controller diperbarui. Akibatnya, gangguan layanan mungkin terjadi. Untuk informasi lebih lanjut tentang cara menyelesaikan masalah kompatibilitas terkait Ingress, lihat bagian Masalah Kompatibilitas dari topik ini. |
Masalah ketidakcocokan
Selama pengembangan dan pemeliharaan, versi baru NGINX Ingress Controller dapat memperkenalkan fitur baru, meningkatkan fitur yang ada, atau memperbaiki masalah keamanan. Namun, pembaruan ini juga dapat menyebabkan masalah kompatibilitas dengan versi sebelumnya karena perubahan dalam arsitektur internal atau variasi dalam pustaka dependensi. Untuk informasi lebih lanjut tentang catatan rilis NGINX Ingress Controller, lihat NGINX Ingress Controller.
Pemeriksaan validasi NGINX asli dinonaktifkan secara default
Versi yang terpengaruh: versi lebih awal dari v1.11.5-aliyun.1
Untuk memperbaiki CVE-2025-1974, mulai dari v1.11.5-aliyun.1, NGINX Ingress Controller menonaktifkan validasi konfigurasi NGINX asli secara default (setara dengan logika nginx -t). Meskipun webhook validasi tetap diaktifkan untuk komponen tersebut, ia tidak memvalidasi konfigurasi yang didefinisikan dalam anotasi snippet. Hanya anotasi non-snippet yang menjalani validasi. Untuk konfigurasi snippet, validitas harus diverifikasi melalui log kesalahan runtime yang dihasilkan oleh NGINX. Untuk detail kerentanan, lihat Advisori Keamanan untuk Kerentanan CVE-2025-1097, CVE-2025-1098, CVE-2025-1974, CVE-2025-24513, dan CVE-2025-24514.
Jika Anda menggunakan anotasi snippet, jalankan perintah berikut setelah setiap modifikasi snippet untuk memantau log pod NGINX Ingress Controller untuk kesalahan konfigurasi:
kubectl logs -f <Nginx-ingress-pod-name> -n kube-system |grep ErrorUntuk mempertahankan kemampuan validasi NGINX asli, aktifkan secara manual dengan menambahkan parameter enable-nginx-native-validation: "true" ke kube-system/nginx-configuration ConfigMap setelah evaluasi risiko menyeluruh.
Anotasi snippet dinonaktifkan secara default
Versi yang terpengaruh: versi lebih awal dari v1.9.3-aliyun.1.
Untuk tujuan keamanan, NGINX Ingress Controller v1.9.3-aliyun.1 dan versi lebih baru melarang anotasi snippet.
nginx.ingress.kubernetes.io/configuration-snippet
nginx.ingress.kubernetes.io/server-snippet
nginx.ingress.kubernetes.io/stream-snippet
nginx.ingress.kubernetes.io/auth-snippet
nginx.ingress.kubernetes.io/modsecurity-snippet
Untuk memastikan keamanan dan stabilitas, jika Anda ingin menggunakan fitur tertentu, kami sarankan Anda menggunakan anotasi atau pengaturan yang sesuai sebagai ganti anotasi snippet.
Jika Anda ingin menggunakan anotasi snippet, evaluasi risiko dan tambahkan allow-snippet-annotations: "true" ke kube-system/nginx-configuration ConfigMap untuk mengizinkan anotasi snippet.
Ketidakcocokan dengan versi TLS lebih awal
Versi yang terpengaruh: versi lebih awal dari v1.7.0-aliyun.1.
TLS 1.1 dan versi lebih awal memiliki masalah keamanan. NGINX Ingress Controller tidak lagi mendukung versi TLS berikut: TLS 1.1 dan TLS 1.0. Sebelum Anda memperbarui NGINX Ingress Controller, pastikan bahwa layanan Anda tidak bergantung pada TLS 1.1 atau versi lebih awal, dan TLS 1.1 serta versi lebih awal telah dihapus dari pengaturan TLS layanan Anda. Perubahan pada ConfigMap berlaku segera.
Konten berikut menunjukkan contoh pengaturan TLS dalam ConfigMap nginx-configuration dari NGINX Ingress Controller di namespace kube-system:
ssl-protocols: SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3Setelah memverifikasi bahwa layanan Anda tidak bergantung pada TLS 1.1 atau versi lebih awal, Anda dapat menghapus baris konfigurasi ini untuk menggunakan pengaturan TLS default. Anda juga dapat menghapus TLS 1.1, TLS 1.0, SSL 3.0, dan SSL 2.0 dari pengaturan TLS. Contoh:
ssl-protocols: TLSv1.2 TLSv1.3Jika Anda ingin menggunakan versi TLS yang lebih lama, lengkapi konfigurasi dengan merujuk pada dokumen yang diperlukan. Untuk informasi lebih lanjut, lihat bagian Protokol SSL atau TLS mana yang didukung oleh Ingress? dari topik "FAQ Nginx Ingress".
Masalah ketidakcocokan terkait anotasi nginx.ingress.kubernetes.io/rewrite-target
Versi yang terpengaruh: versi lebih awal dari 0.22.0.
NGINX Ingress Controller 0.22.0 menambahkan perubahan pada cara menggunakan anotasi
nginx.ingress.kubernetes.io/rewrite-target. Di NGINX Ingress Controller 0.22.0 dan versi lebih baru, Anda perlu secara eksplisit menentukan grup penangkapan jika ingin menggunakan anotasirewrite-target.Anotasi rewrite-target dalam versi NGINX Ingress Controller lebih awal dari 0.22.0 tidak kompatibel dengan anotasi rewrite-target dalam versi yang lebih baru. Sebelum Anda memperbarui NGINX Ingress Controller, ganti
rewrite-targetdenganconfiguration-snippet.
Sebagai contoh, versi NGINX Ingress Controller Anda lebih awal dari 0.22.0 dan Anda menggunakan aturan Ingress berikut:
Modifikasi aturan Ingress berdasarkan konten berikut:
Anda dapat mulai memperbarui NGINX Ingress Controller setelah Anda memodifikasi aturan Ingress. Setelah pembaruan selesai, modifikasi aturan Ingress berdasarkan konten berikut:
Direktif root dan alias asli NGINX sudah tidak digunakan
Versi yang terpengaruh: versi lebih awal dari 1.2.1-aliyun.1.
Karena risiko keamanan yang terkait dengan direktif-direktif ini, versi baru NGINX Ingress Controller telah menghentikan penggunaannya. Sebelum memperbarui, pastikan konfigurasi Ingress Anda tidak mencakup direktif root atau alias yang ditambahkan ke bidang snippet.
Verifikasi
Verifikasi status NGINX Ingress controller dan beban kerja
Selain kemampuan pemantauan ACK, ACK juga memungkinkan Anda menggunakan Layanan Log Sederhana, Managed Service for Prometheus dashboard, dan log kontainer untuk memantau status NGINX Ingress Controller. Untuk mengaktifkan layanan di atas, lihat Analisis dan pantau log akses nginx-ingress-controller dan Gunakan Managed Service for Prometheus.
Layanan Log Sederhana
Anda dapat melihat log yang dikumpulkan oleh Layanan Log Sederhana di konsol ACK.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Klik tab Application Logs. Lalu, pilih nginx-ingress dari daftar drop-down Logstore dan klik Select Logstore.
CatatanJika nginx-ingress tidak ada, periksa apakah fitur pengumpulan log diaktifkan untuk NGINX Ingress Controller. Untuk informasi lebih lanjut, lihat Analisis dan pantau log akses nginx-ingress-controller.
Anda dapat melihat log akses aplikasi dalam daftar log atau tentukan pod dalam pernyataan kueri untuk melihat log akses pod tersebut. Misalnya, Anda dapat menentukan pod versi baru NGINX Ingress Controller dalam pernyataan kueri. Pastikan tingkat keberhasilan permintaan ke pod baru sesuai harapan dan jumlah permintaan yang dikirim ke pod baru sama dengan yang dikirim ke pod lama. Jika statistik pod baru secara signifikan berbeda dari pod lama, kembalikan pembaruan.
Jika permintaan gagal mencocokkan aturan Ingress, kesalahan 404 akan dikembalikan. Secara default, kesalahan tersebut tidak dicatat dalam log akses.
Managed Service for Prometheus dashboard
Anda dapat menggunakan dashboard yang disediakan oleh Managed Service for Prometheus untuk memantau permintaan yang diproses oleh NGINX Ingress Controller.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Klik tab Network Monitoring, lalu klik tab Ingresses.
CatatanJika tab Ingresses tidak ditampilkan, periksa apakah pengumpulan metrik Prometheus dikonfigurasi untuk NGINX Ingress Controller. Untuk informasi lebih lanjut, lihat Gunakan Managed Service for Prometheus.
Anda dapat melihat metrik Ingress di dashboard atau melihat metrik pod tertentu. Pastikan tingkat keberhasilan permintaan ke pod baru normal dan jumlah permintaan yang dikirim ke pod baru sama dengan yang dikirim ke pod lama. Jika statistik pod baru secara signifikan berbeda dari pod lama, kembalikan pembaruan.
Jika tidak ada host yang ditentukan dalam aturan Ingress, metrik Ingress tidak dikumpulkan. Host default diatur ke tanda bintang (*).
Log Pod
Anda dapat menggunakan kubectl untuk mencetak log pod untuk pemecahan masalah.
Jalankan perintah berikut untuk mencetak log pod yang berisi kesalahan NGINX dengan tingkat keparahan Warn, Error, dan Crit:
kubectl logs -n kube-system <Nama Pod> | grep -e warn -e error -e critJalankan perintah berikut untuk mencetak log pod yang berisi kesalahan kontroler:
kubectl logs -n kube-system <Nama Pod> | grep "^[EF]"
Catatan Pembaruan
Saat Anda memperbarui NGINX Ingress Controller, perhatikan perubahan dalam pencocokan awalan. Pastikan konfigurasi jalur sesuai dengan URL permintaan. Jika tidak, kode status 404 akan dikembalikan untuk permintaan.
Masalah yang Diketahui
Perbedaan dalam pencocokan awalan mungkin ada di berbagai versi NGINX Ingress Controller, yang berpotensi menyebabkan masalah akses layanan.
Pada versi lebih awal dari 0.44, aturan pencocokan awalan bersifat longgar. Misalnya, awalan
/aaa/bbbdapat cocok dengan/aaa/bbbbbdalam URL permintaan.Setelah pembaruan, aturan pencocokan awalan menjadi lebih ketat dan hanya cocok dengan URL permintaan yang tepat. Dalam contoh di atas,
/aaa/bbbbbdalam URL permintaan tidak cocok. Sebagai gantinya, kode status 404 dikembalikan.
Ruang Lingkup Dampak
NGINX Ingress Controller versi lebih awal dari v0.44 terpengaruh. Untuk informasi lebih lanjut tentang catatan rilis, lihat NGINX Ingress Controller. Untuk informasi terkait pull request, lihat kubernetes/ingress-nginx #6443.
Konfigurasi Contoh
Anda dapat menggunakan template YAML berikut untuk membandingkan konfigurasi NGINX yangdirender oleh NGINX Ingress Controller versi berbeda, seperti 0.22.0.5-552e0db-aliyun (versi lebih awal) dan 1.2.1-aliyun.1+ (versi lebih baru).
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
ingress-controller: nginx
name: test
namespace: default
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
- backend:
service:
name: api-resources-svc
port:
number: 8080
path: /api/resourceDalam versi lebih awal
Dalam versi seperti 0.22.0.5-552e0db-aliyun, konfigurasi NGINX adalah:
Location /api/resource # Jalur tidak berakhir dengan garis miring (/).Dalam konfigurasi di atas, jalur
/api/resourcemengizinkan akses darihttp://www.example.com/api/resourcedalam versi NGINX yang lebih lama.CatatanJalur permintaan sebenarnya adalah resources, bukan resource.
Dalam versi lebih baru
Jika NGINX Ingress Controller diperbarui ke versi lebih baru seperti 1.2.1-aliyun.1+, konfigurasi NGINX adalah:
Location /api/resource/ # Jalur berakhir dengan garis miring (/). { } ... Location = /api/resource # Lokasi lain ditambahkan untuk pencocokan tepat. { }Kode status HTTP 404 dikembalikan jika Anda mencoba mengakses
http://www.example.com/api/resources.
FAQ
Bisakah saya memperbarui NGINX Ingress controller ke versi tertentu? Setelah pembaruan berhasil, bisakah saya kembali ke versi sebelumnya?
Anda tidak dapat memperbarui NGINX Ingress Controller ke versi tertentu. NGINX Ingress Controller diperbarui secara bertahap dan hanya dapat diperbarui ke versi terbaru. Setelah pembaruan selesai, pembaruan tidak dapat dikembalikan.
Apa yang harus saya lakukan jika pod gagal dibuat selama fase verifikasi dan rilis?
Penyebab | Solusi |
Penyimpangan terjadi saat ACK memulai pod untuk versi baru NGINX Ingress Controller. Misalnya, ACK gagal memuat konfigurasi pod. Akibatnya, pod tetap dalam keadaan crash. | Gunakan metode di atas untuk mencetak log pod dan memecahkan masalah. Untuk informasi lebih lanjut, lihat Pemecahan Masalah NGINX Ingress Controller. |
Kegagalan penjadwalan pod biasanya terjadi saat Anda menerapkan NGINX Ingress Controller pada node khusus. Saat ACK membuat pod untuk versi baru NGINX Ingress Controller, ACK mungkin gagal menemukan node untuk pod karena batasan sumber daya dan pemilih node. | Tambahkan node ke kluster Anda atau kurangi jumlah pod untuk NGINX Ingress Controller selama jam sepi sebelum Anda memperbarui komponen sehingga pod baru dapat dijadwalkan ke node. |
Apa yang harus saya lakukan jika template Deployment gagal melewati pemeriksaan?
Jika template Deployment gagal melewati pemeriksaan, klik hyperlink di sebelah kanan Cause untuk pergi ke halaman Perbandingan Komponen. Anda dapat melihat parameter komponen yang gagal melewati pemeriksaan.
Di halaman NGINX Ingress Controller Update, klik View Details di bawah Precheck.
Di bagian Cluster Components Result dari halaman Report, klik hasil dalam kotak merah yang ditandai dengan ①. Di tab Result, klik Deployment Template. Lalu, klik hyperlink di sebelah kanan Cause yang ditandai dengan ②.

Di halaman Component Comparison, Anda dapat melihat parameter komponen yang gagal melewati pemeriksaan.
Di halaman Perbandingan Komponen, template komponen standar ditampilkan di sebelah kiri dan template komponen saat ini ditampilkan di sebelah kanan. Halaman Perbandingan Komponen menampilkan perbedaan antara template, termasuk parameter yang kompatibel dan tidak kompatibel, serta mencantumkan perbedaan di bagian bawah halaman. Halaman Perbandingan Komponen juga menunjukkan apakah komponen melewati pemeriksaan dan menampilkan parameter yang menyebabkan perbedaan.
Dalam gambar berikut, perbedaan ditemukan antara template dan parameter yang menyebabkan perbedaan adalah .spec.template.spec.containers.(nginx-ingress-controller).args. nginx-ingress-controller adalah nama kontainer tempat parameter tersebut berada. Hasil perbandingan menunjukkan bahwa
--v=2ditentukan dalam parameter args di template standar, sedangkan--v=3ditentukan dalam parameter args di template saat ini. Anda harus memodifikasi parameter args sebelum memperbarui komponen.
Modifikasi parameter yang menyebabkan perbedaan.
Di panel navigasi kiri, pilih Workloads > Deployments. Di halaman Deployment, temukan NGINX Ingress controller dan pilih More > View in YAML di kolom Tindakan. Di kotak dialog Edit YAML, ubah nilai parameter args dari
--v=3menjadi--v=2.Setelah Anda memodifikasi parameter args, Anda dapat menyegarkan halaman Perbandingan Komponen untuk memeriksa apakah perbedaan telah diperbaiki. Jika The component passes the comparison check. ditampilkan di bagian bawah halaman, template Deployment melewati pemeriksaan.
CatatanSistem memulai ulang pod NGINX Ingress Controller untuk menerapkan modifikasi pada Deployment. Kami sarankan Anda melakukan operasi terkait selama jam sepi.

Referensi
Untuk informasi lebih lanjut tentang catatan rilis NGINX Ingress Controller, lihat NGINX Ingress Controller.
Jika masalah seperti kegagalan jaringan terjadi saat Anda menggunakan Nginx Ingress Controller, lihat topik terkait terlebih dahulu. Untuk informasi lebih lanjut, lihat Konfigurasikan grup keamanan untuk kluster dan FAQ Nginx Ingress.