Xem bản video
Bài này giao việc, không dạy lý thuyết. Nếu cụm của bạn đang chạy ingress-nginx thì đây là thứ nên đọc trước mọi thứ khác trong series.
Chuyện đã xảy ra
Tháng 3 năm 2026, dự án ingress-nginx ngừng phát triển. Repo chuyển sang chỉ đọc:
- không bản phát hành mới
- không sửa lỗi
- không vá bảo mật
Theo hướng dẫn di trú của AWS, nó đang đứng ở cửa của khoảng một nửa số cụm Kubernetes. (Con số này là ước tính trong tài liệu đó, không phải phép đo của tôi.)
Nói cho rõ: cái gì ngừng, cái gì không
| Vẫn còn | Đã ngừng |
|---|---|
| đối tượng Ingress — không bị xoá khỏi API, cụm vẫn chấp nhận | ingress-nginx, cái controller đọc nó |
Nhưng bản thân Ingress cũng đã đóng băng tính năng từ lâu — mọi thứ mới đều đi vào Gateway API. Nói cách khác: bản mô tả vẫn còn, người thi hành thì nghỉ.
Vì sao phải dừng
Theo thông báo của Steering Committee và Security Response Committee, lý do rất đời: dự án chạy gần như hoàn toàn bằng tình nguyện, trong khi bề mặt tấn công của nó rất rộng — nó nhận annotation do người dùng viết rồi sinh ra file cấu hình nginx thật để chạy, ở đúng cửa vào cụm. Số người bảo trì không đủ để canh một thứ như thế. Ngừng có kiểm soát vẫn hơn để nó mục dần.
Rủi ro của việc ngồi yên
Hôm nay cụm vẫn chạy bình thường — đó là sự thật. Nhưng lỗ hổng tiếp theo sẽ không có bản vá. Và vì nó nằm ở cửa vào, nó là thứ người ngoài chạm tới đầu tiên, trước cả tường lửa ứng dụng và trước cả mã của bạn.
Đây không phải chuyện thiếu tính năng. Đây là một bề mặt tấn công không còn ai canh.
Ba đường ra
| Đường | Cái giá | |
|---|---|---|
| 1 | Chuyển sang Gateway API (khuyến nghị) | công sức lớn nhất, nhưng là đường duy nhất đi tới đâu đó |
| 2 | Đổi sang một ingress controller khác còn được bảo trì | nhẹ hơn, nhưng vẫn ở trên một API đã đóng băng |
| 3 | Mua hỗ trợ thương mại cho bản đã đóng băng | mua thêm thời gian, không giải quyết gì |
Không chọn cũng là một lựa chọn — và là lựa chọn tệ nhất trong bốn cái.
Công cụ dịch sẵn
ingress2gateway bản 1.0 ra tháng 3/2026, dịch được hơn 30 annotation. Nó đọc đám Ingress đang
có rồi sinh ra HTTPRoute tương ứng. Nhưng nó không phải nút bấm một phát là xong: nó dịch
phần cấu trúc — host, path, backend. Còn chỗ nào bạn dùng annotation riêng của nginx (rewrite,
auth, rate limit, snippet) thì vẫn phải xem lại bằng mắt.
Việc làm ngay tuần này
# 1. đếm xem cụm đang có bao nhiêu Ingress
kubectl get ingress -A --no-headers | wc -l
# 2. chạy thử bản dịch, chỉ in ra màn hình
ingress2gateway print --input-file ingress.yaml
- Chọn đường đi và ghi hẳn một cái ngày vào lịch.
Việc tệ nhất lúc này là không làm gì rồi quên nó đi.
Nguồn: Thông báo của Steering & Security Response Committee · Google Open Source — The End of an Era · AWS — hướng dẫn di trú khỏi NGINX Ingress · ingress2gateway 1.0