Kong Ingress Controller: API Gateway Cho Kubernetes
Kong Ingress Controller for Kubernetes (KIC) biến CRD của Kubernetes thành cấu hình định tuyến thực cho Kong Gateway, bao phủ cả Ingress lẫn Gateway API mới. README của Kong nói công việc tính năng mới nay chuyển sang Kong Operator, còn KIC chỉ giữ ở chế độ hỗ trợ. Hãy dùng nếu bạn đã chạy Kong Gateway và cần định tuyến theo kiểu CRD ngay bây giờ; bỏ qua nếu là một cluster hoàn toàn mới, vì Kong đang hướng người dùng mới sang Kong Operator.
Kong Ingress Controller là gì?
Kong Ingress Controller for Kubernetes (KIC) là controller chính thức cho phép Kong Gateway đọc các resource Ingress và Gateway API của Kubernetes rồi biến chúng thành cấu hình định tuyến thực. Ngoài HTTP thông thường, nó còn xử lý TLS, gRPC, TCP, và UDP qua cùng một gateway trên nhiều namespace, theo README, và xếp thêm hệ thống plugin của Kong lên trên cho authentication, biến đổi request/response, và rate limiting.
Các tính năng chính để quản lý traffic Kubernetes
- ✓Hỗ trợ Gateway API: cấu hình Kong qua các resource Gateway API, được tài liệu hoá là kế thừa chính thức của Ingress, với định tuyến native cho TLS, gRPC, TCP, và UDP bên cạnh HTTP/HTTPS, dùng chung trên nhiều namespace của cùng một gateway.
- ✓Hỗ trợ Ingress: vẫn cấu hình Kong qua resource Ingress tiêu chuẩn của Kubernetes cho các cluster chưa chuyển sang Gateway API.
- ✓Cấu hình khai báo bằng CRD: biểu diễn toàn bộ tính năng của Kong dưới dạng Custom Resource Definition của Kubernetes thay vì một file cấu hình riêng hay gọi trực tiếp admin API.
- ✓Tự động scale số replica của Kong Gateway để giữ khả năng định tuyến luôn sẵn sàng, được README mô tả như việc vận hành Kong thay bạn chứ không phải làm thủ công.
- ✓Health check chủ động và bị động kết hợp với load balancing giữa các pod backend.
- ✓Kiểm soát traffic qua plugin: các plugin của Kong cho authentication, biến đổi request/response, và rate limiting, được gắn theo kiểu khai báo theo README.
- ✓Hai đường cài đặt được tài liệu song song: Helm chart từ charts.konghq.com, hoặc Kong Operator như một phương án triển khai khác.
- ✓Image bản release được phát hành trên Docker Hub cho linux/amd64 và linux/arm64, cộng thêm bản build nightly từ nhánh main tại một repository nightly-ingress-controller riêng.
Cài đặt Kong Ingress Controller
Đường cài đặt được tài liệu hoá dùng Helm. Trước tiên cài các CRD của Gateway API bằng kubectl apply với manifest standard-install.yaml phiên bản v1.0.0 từ kubernetes-sigs/gateway-api (hoặc bản experimental-install.yaml nếu cần hỗ trợ TCPRoute và UDPRoute), sau đó cài chính Kong Ingress Controller bằng `helm install kong --namespace kong --create-namespace --repo https://charts.konghq.com ingress`. README gợi ý thử trên Minikube hoặc Kind ở máy local, hoặc trên một cluster được host như GKE, và liệt kê Kong Operator như một phương án khác thay cho cài bằng Helm. Người dùng Kong Enterprise được dẫn tới một hướng dẫn thiết lập enterprise riêng thay vì lệnh Helm tiêu chuẩn.
Cấu hình API và traffic với KIC
Sau khi cài đặt, Kong Ingress Controller for Kubernetes theo dõi các object Ingress hoặc Gateway API - GatewayClass, Gateway, HTTPRoute, và ReferenceGrant, theo README - rồi tự động đẩy các route tương ứng vào Kong Gateway. Hành vi plugin như authentication, biến đổi request/response, và rate limiting được gắn qua CRD thay vì admin API của Kong. Bản thân README không đưa ví dụ cấu hình chi tiết; nó dẫn tới các hướng dẫn trong repository tài liệu kong/developer.konghq.com riêng để lấy manifest CRD và cú pháp plugin thực tế.
Điểm mạnh
- ✓Bao phủ cả Kubernetes Ingress lẫn Gateway API trong cùng một controller, nên đội ngũ có thể chuyển đổi giữa hai loại mà không cần đổi gateway.
- ✓Định tuyến nhiều hơn HTTP - traffic TCP, UDP, TLS, và gRPC đều chạy qua cùng một gateway, theo danh sách tính năng của README.
- ✓Hệ thống plugin của Kong - authentication, biến đổi, rate limiting - gắn vào route theo kiểu khai báo qua CRD thay vì gọi riêng admin API.
- ✓Hai đường cài đặt được hỗ trợ, Helm chart hoặc Kong Operator, cộng với image Docker được phát hành cho linux/amd64 và linux/arm64.
- ✓Giấy phép Apache-2.0 với các kênh hỗ trợ hoạt động - GitHub discussions, issue, kênh Slack Kubernetes, và các buổi gặp cộng đồng hàng tháng, theo README.
Tương lai và các lưu ý về KIC
- △Kong đang hướng mọi phát triển tính năng mới sang Kong Operator; README mô tả KIC chỉ tiếp tục ở chế độ hỗ trợ, nên khả năng mới sẽ xuất hiện ở nơi khác trước.
- △Thiết lập cho enterprise được dẫn sang một hướng dẫn enterprise riêng mà README trỏ tới, thay vì được viết trực tiếp cho repository này.
- △Ví dụ cấu hình CRD và YAML chi tiết không nằm trong README - nó dẫn sang repository tài liệu developer.konghq.com để lấy cú pháp manifest thực tế.
- △Image container bản release chỉ được phát hành cho linux/amd64 và linux/arm64, nên các kiến trúc khác chưa được hỗ trợ.
- △Các tính năng preview và thử nghiệm nằm sau feature gate chỉ được tài liệu hoá trong hai file FEATURE_GATES.md và FEATURE_PREVIEW_DOCUMENTATION.md của chính repo này, chứ không có trên trang tài liệu chính của Kong.
Các lựa chọn thay thế cho Kong Ingress Controller
Câu hỏi thường gặp về Kong Ingress Controller
Kong Ingress Controller for Kubernetes là controller độc lập biến CRD của Kubernetes thành cấu hình cho Kong Gateway. README nói mọi phát triển mới cho Kong trên Kubernetes đang chuyển sang Kong Operator, kết hợp công việc của KIC và Kong Gateway Operator vào một đường triển khai duy nhất, trong khi KIC chỉ tiếp tục ở chế độ hỗ trợ.
Kong Ingress Controller for Kubernetes hỗ trợ Gateway API như kế thừa chính thức của Ingress, với định tuyến native cho TLS, gRPC, TCP, UDP, và HTTP/HTTPS qua các resource GatewayClass, Gateway, HTTPRoute, và ReferenceGrant, theo README.
README nêu authentication, biến đổi request/response, và rate limiting là các nhóm plugin ví dụ mà Kong Ingress Controller for Kubernetes áp dụng qua hệ thống plugin của Kong, được gắn theo kiểu khai báo qua CRD.
Đường cài đặt được tài liệu hoá cài CRD của Gateway API trước, sau đó chạy `helm install kong --namespace kong --create-namespace --repo https://charts.konghq.com ingress`; README cũng liệt kê Kong Operator như một phương án khác thay cho cài bằng Helm.
README dẫn người dùng Kong Enterprise tới một hướng dẫn thiết lập enterprise riêng, nên Kong Ingress Controller for Kubernetes có hỗ trợ triển khai enterprise, chỉ là theo một đường tài liệu khác so với cài Helm bản mã nguồn mở.
Kong Ingress Controller for Kubernetes được phát hành theo giấy phép Apache-2.0, như được liệt kê trên repository GitHub của nó.
Vấn đề mà nó giải quyết
Các đội chạy Kong Gateway bên trong một cluster Kubernetes cần route, plugin, và health check luôn đồng bộ với trạng thái cluster mà không phải tự tay sửa admin API của Kong hay duy trì một file cấu hình khai báo riêng bên ngoài Kubernetes. Kong Ingress Controller for Kubernetes giải quyết việc đó bằng cách theo dõi trực tiếp các object Ingress và Gateway API của Kubernetes rồi đẩy cấu hình tương ứng vào Kong Gateway, nên một thay đổi route áp dụng bằng kubectl có hiệu lực ngay mà không cần đẩy riêng sang phía Kong.
Trường hợp sử dụng tốt nhất
- •Chạy Kong Gateway làm điểm vào của một cluster Kubernetes và muốn route, TLS, plugin được định nghĩa dưới dạng CRD thay vì đẩy cấu hình riêng.
- •Chuyển dần từ thiết lập chỉ dùng Ingress sang Gateway API mà vẫn giữ cùng một gateway, vì KIC hỗ trợ song song cả hai loại resource theo README.
- •Phục vụ traffic ngoài HTTP thông thường - gRPC, TLS, TCP, và UDP - qua một gateway trên nhiều namespace thay vì dựng riêng object ingress cho từng giao thức.
- •Áp dụng hệ thống plugin của Kong cho authentication, biến đổi request/response, hoặc rate limiting lên các workload Kubernetes-native mà không gọi trực tiếp admin API của Kong.
- •Các đội dùng Kong Enterprise muốn cùng mô hình khai báo bằng CRD nhưng có thêm tính năng chỉ dành cho enterprise, theo hướng dẫn thiết lập enterprise riêng mà README dẫn tới.
Ai nên dùng — và ai nên bỏ qua
Hãy dùng Kong Ingress Controller for Kubernetes nếu đội của bạn đã chạy Kong Gateway và cần định tuyến Ingress hoặc Gateway API theo kiểu CRD cùng hệ sinh thái plugin cho auth, rate limiting, hay biến đổi request. Nó cũng phù hợp nếu bạn cần một gateway phục vụ HTTP cùng với TCP, UDP, TLS, và gRPC trên nhiều namespace thay vì dùng object ingress riêng cho từng giao thức. Bỏ qua nếu bạn đang chọn gateway cho một cluster hoàn toàn mới mà chưa có gì đầu tư vào Kong, vì chính Kong đang hướng các triển khai mới sang Kong Operator thay vì KIC.
Repo liên quan
Vẫn đang phân vân về kubernetes-ingress-controller?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về kubernetes-ingress-controller.
