1. 13:00 12/10/2026
Giới thiệu
Khi mô hình phân loại hình ảnh đã sẵn sàng cho sản xuất, việc đưa nó vào môi trường Kubernetes giúp tận dụng khả năng tự động mở rộng, quản lý phiên bản và quan sát hiệu năng. KServe (trước đây là KFServing) kết hợp với Knative Serving cung cấp một lớp trừu tượng serverless cho inference, cho phép bạn triển khai mô hình như một dịch vụ HTTP/gRPC mà không cần lo lắng về hạ tầng chi tiết.
Kiến trúc tổng quan
- Control plane: Kubernetes API server, KServe controller, Knative Serving controller.
- Data plane: Istio/Envoy gateway điều hướng request, Knative Activator cold‑start, các Pod inference chạy container mô hình (TensorFlow Serving, TorchServe, Triton, v.v.).
- Storage: Model artifacts lưu trong PVC, S3兼容 object store hoặc GitOps repo.
Các bước triển khai thực tế
1. Chuẩn bị artifact: Đóng gói mô hình (SavedModel, TorchScript, ONNX) vào một thư mục có file config.pbtxt (nếu dùng Triton) hoặc model.config (TensorFlow Serving).
2. Tạo InferenceService YAML:
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: img-classifier
spec:
predictor:
tensorflow:
storageUri: s3://my-bucket/models/img-classifier/v1
resources:
limits:
nvidia.com/gpu: "1"
requests:
cpu: "2"
memory: "4Gi"
3. Áp dụng manifest: kubectl apply -f inference-service.yaml. KServe sẽ tạo Knative Service, Deployment, Service và HorizontalPodAutoscaler tự động.
4. Kiểm tra cold‑start: Gửi request đầu tiên qua curl đến URL do Knative cấp (vd. http://img-classifier.default.example.com/v1/models/img-classifier:predict). Quan sát latency và logs của activator.
5. Cấu hình autoscaling: Đặt metric concurrency hoặc CPU target trong spec.predictor.tensorflow.autoscaling để pod scale từ 0 đến N tùy tải.
Mẹo tối ưu hóa
- Sử dụng Triton Inference Server với model repository để phục vụ nhiều framework cùng lúc.
- Bật GPU sharing (MIG) nếu cluster có GPU A100 để chạy nhiều replica trên một card.
- Cài đặt Prometheus + Grafana để theo dõi request latency, queue length, GPU utilization.
- Áp dụng canary rollout: Tạo InferenceService phiên bản mới với label canary: "true" và điều chỉnh trafficSplit trong Knative Service.
- Lưu trữ model versioning trong MLflow hoặc DVC, sau đó trỏ storageUri đến version mới khi cần rollback.
Kết luận
Kết hợp KServe và Knative mang lại trải nghiệm serverless cho inference hình ảnh: triển khai nhanh, tự động scale to zero, và tích hợp sẵn với hệ sinh thái Kubernetes (Istio, Cert‑Manager, Argo CD). Việc nắm vững các manifest InferenceService, chiến lược autoscaling và quan sát metric sẽ giúp đội ngũ ML vận hành mô hình ổn định, tiết kiệm chi phí GPU và đáp ứng SLA độ trễ khắt khe.