TopGit
Đánh giá repo GitHub

NGINX Ingress Controller: Định Tuyến Kubernetes

nginx/kubernetes-ingress
NTopGit review image for nginx/kubernetes-ingress
Review by Topgit.dev for nginx/kubernetes-ingress, with GitHub repository stats and README context.
Nhận định nhanh

NGINX Ingress Controller là bản triển khai Kubernetes Ingress của chính F5, chạy trên NGINX mã nguồn mở hoặc NGINX Plus trả phí. Ingress chuẩn xử lý routing host/path và TLS termination; VirtualServer và TransportServer bổ sung traffic splitting cùng TCP/UDP/TLS-passthrough mà Ingress thường không làm được. Dùng nếu muốn hỗ trợ chính hãng từ NGINX với đường lên Plus; bỏ qua nếu không muốn học thêm một bộ CRD bên cạnh Ingress chuẩn.

Sao
★ 5.1k
Fork
⑂ 2.1k
Người đóng góp
👥 190
Ngôn ngữ
Go
Giấy phép
Apache-2.0
Chủ đề
Developer Tools
Cập nhật
Aug 2026
Trang chủ
GitHub

Tìm Hiểu Về NGINX Ingress Controller

NGINX Ingress Controller là Ingress Controller chính thức cho Kubernetes, được xây dựng và duy trì bởi đội ngũ NGINX tại F5. Nó chạy như một pod trong cluster, theo dõi resource Ingress và VirtualServer/VirtualServerRoute của riêng nó để cấu hình lại load balancer NGINX — xử lý routing host/path, TLS termination, và load balancing cho Websocket, gRPC, TCP, UDP. Đây là codebase khác repo kubernetes/ingress-nginx của cộng đồng.

Tính Năng Chính Cho Traffic Kubernetes

  • Routing theo nội dung qua Ingress chuẩn: routing theo host (ví dụ foo.example.com so với bar.example.com) và routing theo path (ví dụ /serviceA so với /serviceB).
  • TLS/SSL termination cấu hình riêng cho từng hostname.
  • Custom resource VirtualServer và VirtualServerRoute cho traffic splitting và routing nội dung nâng cao, vượt ra ngoài những gì spec Ingress hỗ trợ.
  • Resource TransportServer cho load balancing TCP, UDP, và TLS Passthrough.
  • Load balancing cho traffic Websocket và gRPC, ngoài HTTP.
  • Các tính năng NGINX/NGINX Plus bổ sung được expose qua annotations và resource ConfigMap, không cần custom resource riêng cho từng tinh chỉnh nhỏ.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Cài Đặt Ingress Controller

README không dán sẵn lệnh cài đặt — nó trỏ tới một Helm chart hoặc một bộ manifest Kubernetes, cả hai đều được link tới docs, nên hãy coi các trang đó là nguồn chính xác cho từng bước cụ thể. Điều được xác nhận: bản stable mới nhất hiện là 5.5.4, và image của nó được publish lên DockerHub, GitHub Container registry, Amazon ECR Public Gallery, và Quay.io (image NGINX Plus lấy từ container registry riêng của F5, hoặc bạn tự build từ source). README nhấn mạnh image, manifest/Helm chart, và docs bạn dùng phải cùng một phiên bản — ví dụ dùng image edge chung với manifest 5.5.4 là không được hỗ trợ. Sau khi cài, bước tiếp theo mà chính README đưa ra là cấu hình một app đơn giản qua resource Ingress thường (ví dụ Cafe) hoặc resource VirtualServer (ví dụ basic-configuration).

Cấu Hình Ingress Và Routing Nâng Cao

Có hai hướng cấu hình song song. Resource Ingress thường xử lý routing theo host/path cùng TLS termination theo từng hostname — giống hệt Ingress chuẩn của Kubernetes, được mở rộng bằng annotations và resource ConfigMap khi cần vượt ra ngoài các field sẵn có của spec Ingress. VirtualServer và VirtualServerRoute là hướng thứ hai, được xây riêng cho traffic splitting và routing nội dung nâng cao mà Ingress thường không làm được, và README có kèm ví dụ basic-configuration cho hướng này. Với traffic không phải HTTP, resource TransportServer xử lý TCP, UDP, và TLS Passthrough. Ngoài routing, controller còn load balancing traffic Websocket và gRPC giống như HTTP. Mọi ví dụ được nhắc tới đều nằm trong thư mục examples/ của repo, cùng với docs configuration-examples đầy đủ hơn.

Vì Sao Chọn NGINX Cho Kubernetes Ingress?

  • Do chính đội ngũ NGINX tại F5 xây dựng và duy trì, không phải bản triển khai lại của bên thứ ba — bạn đang chạy controller của chính engine đó.
  • Custom resource VirtualServer/VirtualServerRoute và TransportServer xử lý traffic splitting, TCP/UDP, và TLS Passthrough mà Kubernetes Ingress chuẩn không có spec cho.
  • Một controller duy nhất xử lý HTTP, Websocket, gRPC, TCP, và UDP, nên không cần chạy thêm một load balancer L4 riêng cho traffic không phải HTTP bên cạnh Ingress.
  • SBOM có sẵn cho cả binary và Docker image (định dạng SPDX qua syft), nên bạn có thể chạy scan chuỗi cung ứng như grype ngay trên đúng image bạn deploy.
  • Giấy phép Apache-2.0, nên bản NGINX mã nguồn mở không bị giới hạn gì khi dùng production dù không có hợp đồng Plus.
  • Có community call công khai, định kỳ mỗi hai tuần vào thứ Hai, bàn về PR, issue, và feature request công khai, theo README.

Những Điều Cần Cân Nhắc Và Giới Hạn

  • Hai mô hình cấu hình song song cần học — Ingress thường với annotations/ConfigMap, và các CRD VirtualServer/VirtualServerRoute — thay vì chỉ một mô hình duy nhất.
  • Hợp đồng hỗ trợ thương mại chỉ dành cho khách hàng NGINX Plus; README không nhắc tới điều tương đương cho bản NGINX miễn phí.
  • README yêu cầu chỉ dùng docs khớp đúng với bản stable mới nhất bạn đang chạy (hiện là 5.5.4) — lệch phiên bản giữa image, manifest, và docs thì bạn tự chịu.
  • Các bước cài đặt không được liệt kê trực tiếp trong README — bạn phải sang đọc docs Helm chart hoặc manifest riêng, nên không có quick-start copy-paste được trong phần dữ kiện ở đây.
  • Dễ nhầm với kubernetes/ingress-nginx — cùng khái niệm 'NGINX Ingress Controller' nhưng là codebase khác, đến mức chính README phải nói rõ điều này.
Xem trên GitHubTrang chủ

Phân Biệt Với Các Lựa Chọn NGINX Ingress Khác

kubernetes/ingress-nginx — Ingress controller dựa trên NGINX do cộng đồng duy trì, được chính README của dự án này nói rõ là một codebase khác dù tên gần giống nhau.Traefik — một Ingress/reverse-proxy controller phổ biến khác cho Kubernetes, có CRD riêng cho routing nâng cao, tinh thần khá giống VirtualServer.Kong Ingress Controller — Ingress controller kiểu API gateway, đáng cân nhắc nếu bạn cần plugin và auth tích hợp sẵn ngoài routing thuần.Istio Ingress Gateway — ingress dựa trên service mesh, hợp lý nếu bạn đã chạy Istio và muốn ingress do chính gateway của mesh xử lý thay vì một controller độc lập.HAProxy Ingress — lựa chọn dựa trên HAProxy cho team đã chuẩn hoá dùng HAProxy thay vì NGINX.

Câu Hỏi Thường Gặp

NGINX Ingress Controller có hỗ trợ cả NGINX và NGINX Plus không?

NGINX Ingress Controller hoạt động với cả NGINX mã nguồn mở lẫn NGINX Plus, theo README của dự án, trong đó NGINX Plus có thêm hợp đồng hỗ trợ thương mại trên cùng một controller.

NGINX Ingress Controller này khác gì với kubernetes/ingress-nginx?

NGINX Ingress Controller (repo này, nginx/kubernetes-ingress) và kubernetes/ingress-nginx là hai project khác nhau, theo chính ghi chú trong README — hai codebase riêng biệt, không phải hai tên gọi của cùng một controller.

NGINX Ingress Controller hỗ trợ những tính năng Ingress chuẩn nào?

NGINX Ingress Controller hỗ trợ đầy đủ tập tính năng Ingress chuẩn của Kubernetes: routing nội dung theo host và theo path, cùng TLS/SSL termination cho từng hostname.

NGINX Ingress Controller có xử lý được traffic Websocket, gRPC, TCP, và UDP không?

NGINX Ingress Controller load balancing được traffic Websocket, gRPC, TCP, và UDP ngoài HTTP, theo README, trong đó TCP/UDP và TLS Passthrough được xử lý riêng qua resource TransportServer.

VirtualServer và VirtualServerRoute là gì?

VirtualServer và VirtualServerRoute là các custom resource riêng của NGINX Ingress Controller, dùng thay cho Ingress thường trong các trường hợp như traffic splitting và routing nội dung nâng cao mà resource Ingress chuẩn không hỗ trợ.

NGINX Ingress Controller có hỗ trợ thương mại không?

Hỗ trợ thương mại có sẵn cho NGINX Ingress Controller khi dùng cùng NGINX Plus — README nói khách hàng NGINX Plus được hợp đồng hỗ trợ bao phủ, không nhắc tới gói hỗ trợ trả phí tương đương cho bản NGINX miễn phí.

Vấn đề NGINX Ingress Controller giải quyết

Tài nguyên Ingress có sẵn của Kubernetes chỉ chuẩn hoá những thứ cơ bản — routing theo host/path và TLS theo từng hostname — còn các giao thức như gRPC, TCP/UDP thô, hay các pattern chia traffic kiểu canary release thì nằm ngoài spec đó hoàn toàn. NGINX Ingress Controller sinh ra để lấp khoảng trống đó cho người đã dùng NGINX: nó triển khai đúng resource Ingress chuẩn, rồi xếp thêm các custom resource VirtualServer/VirtualServerRoute và TransportServer của riêng mình lên trên, để những trường hợp chưa được chuẩn hoá đó không cần lắp thêm một load balancer riêng, không liên quan.

Trường hợp sử dụng tốt nhất

  • Chạy Ingress HTTP(S) production cho service trên Kubernetes khi team đã chuẩn hoá dùng NGINX và muốn có hỗ trợ chính hãng phía sau nó.
  • Chia traffic — routing kiểu canary hay blue-green — qua VirtualServer/VirtualServerRoute khi matching path/host đơn giản của Ingress chuẩn là chưa đủ.
  • Load balancing các giao thức không phải HTTP — Websocket, gRPC, TCP/UDP thô — qua một controller duy nhất, thay vì lắp thêm một load balancer L4 riêng.
  • TLS Passthrough cho workload cần tự terminate TLS thay vì để ingress làm, xử lý qua resource TransportServer.
  • Team dùng NGINX Plus muốn hợp đồng hỗ trợ thương mại gắn thẳng vào lớp ingress của mình.

Ai nên dùng — và ai nên bỏ qua

Dùng NGINX Ingress Controller nếu team bạn đã chuẩn hoá dùng NGINX, cần routing vượt ra ngoài những gì Ingress HTTP thuần làm được — traffic splitting, gRPC, TCP/UDP thô — hoặc muốn có đường thẳng tới hỗ trợ thương mại của NGINX Plus. Bỏ qua nếu bạn chỉ cần routing HTTP cơ bản và chưa có sẵn thiên hướng dùng NGINX, vì bạn sẽ phải học thêm CRD VirtualServer/VirtualServerRoute bên trên Ingress chuẩn cho những khả năng có thể bạn không cần, hoặc nếu bạn đã dùng sâu kubernetes/ingress-nginx và không muốn chạy thêm một controller thứ hai, cấu hình khác hẳn, song song.

Repo liên quan

Nguồn & ghi công

Thông tin và trích dẫn lấy từ repository GitHub nginx/kubernetes-ingress và README của nó.

Dữ liệu GitHub · đồng bộ lần cuối 12 thg 8, 2026Đánh giá bởi Henry
Về TopGit

Chưa chắc kubernetes-ingress có hợp với bạn?

Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về kubernetes-ingress.

GitHub