Kubernetes
Khám phá cách Kubernetes tự động hóa việc triển khai và mở rộng các model AI. Tìm hiểu cách điều phối Ultralytics YOLO26 trên K8s cho thị giác máy tính hiệu suất cao.
Kubernetes, thường được gọi là K8s, là một nền tảng mã nguồn mở được thiết kế để tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng được đóng gói trong container. Được phát triển ban đầu bởi Google và hiện được duy trì bởi Cloud Native Computing Foundation (CNCF), Kubernetes đã trở thành tiêu chuẩn cho việc điều phối phần mềm trên đám mây. Trong bối cảnh Artificial Intelligence (AI) và Machine Learning (ML), nó đóng vai trò là lớp hạ tầng quan trọng cho phép các đội ngũ kỹ thuật quản lý các quy trình công việc phức tạp, từ distributed training đến suy luận (inference) sản xuất với tính khả dụng cao. Bằng cách trừu tượng hóa phần cứng bên dưới, Kubernetes đảm bảo rằng các ứng dụng chạy ổn định và hiệu quả, bất kể chúng được lưu trữ tại chỗ (on-premise) hay thông qua các nhà cung cấp đám mây công cộng.
Link to this sectionKiến trúc cốt lõi và các khái niệm#
Về cơ bản, Kubernetes hoạt động dựa trên kiến trúc cụm (cluster), bao gồm một tập hợp các máy worker được gọi là nodes. Các node này chạy các khối lượng công việc containerization, trong khi một mặt phẳng điều khiển (control plane) quản lý trạng thái tổng thể của cụm. Đơn vị có thể triển khai nhỏ nhất trong Kubernetes là "Pod", bao bọc một hoặc nhiều container chia sẻ tài nguyên lưu trữ và mạng. Sự trừu tượng hóa này rất quan trọng đối với các ứng dụng computer vision, vì nó cho phép các lập trình viên đóng gói các phụ thuộc—như các thư viện CUDA cụ thể cho Graphics Processing Units (GPUs)—vào một môi trường nhất quán. Các dịch vụ đám mây lớn như Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), và Google Kubernetes Engine (GKE) cung cấp các phiên bản quản lý của kiến trúc này, giúp đơn giản hóa gánh nặng bảo trì cho các nhóm khoa học dữ liệu.
Link to this sectionTại sao Kubernetes quan trọng đối với AI#
Giá trị chính của Kubernetes trong Machine Learning Operations (MLOps) nằm ở khả năng xử lý các khối lượng công việc động. Các mô hình AI thường yêu cầu công suất tính toán khổng lồ trong quá trình huấn luyện và inference latency thấp trong quá trình triển khai.
- Khả năng mở rộng (Scalability): Kubernetes sử dụng tính năng tự động mở rộng (autoscaling) để điều chỉnh tài nguyên một cách tự động. Nếu xảy ra sự gia tăng đột ngột về lưu lượng truy cập, Horizontal Pod Autoscaler có thể tăng số lượng pod suy luận để duy trì scalability mà không cần sự can thiệp thủ công.
- Tối ưu hóa tài nguyên: Việc phân bổ phần cứng đắt tiền một cách hiệu quả là rất quan trọng. Kubernetes cho phép chia sẻ GPU phân đoạn và gán node (node affinity), đảm bảo rằng các mô hình deep learning chỉ tiêu thụ tài nguyên khi các công việc đang hoạt động yêu cầu.
- Triển khai bền bỉ: Đảm bảo tính khả dụng cao trong quá trình model deployment là rất thiết yếu. Nếu một node gặp sự cố, Kubernetes sẽ tự động khởi động lại các pod bị ảnh hưởng trên các node khỏe mạnh, ngăn ngừa thời gian chết (downtime) cho các dịch vụ API quan trọng.
Link to this sectionCác ứng dụng trong thực tế#
Kubernetes là xương sống cho nhiều triển khai AI quy mô lớn trong các ngành công nghiệp khác nhau:
-
Quản lý giao thông đô thị thông minh: Một chính quyền đô thị có thể triển khai các mô hình Ultralytics YOLO26 để phân tích nguồn cấp dữ liệu video từ hàng ngàn giao lộ. Sử dụng Kubernetes, hệ thống có thể tự động mở rộng tài nguyên trong giờ cao điểm để xử lý tải object detection tăng cao và giảm bớt vào ban đêm để tiết kiệm chi phí. Cách tiếp cận này là nền tảng cho các traffic management systems hiện đại.
-
Cá nhân hóa thương mại điện tử: Các nhà bán lẻ trực tuyến sử dụng các recommendation systems phức tạp được xây dựng trên microservices. Một dịch vụ có thể xử lý việc tạo ứng viên trong khi dịch vụ khác quản lý việc xếp hạng lại. Kubernetes điều phối các dịch vụ riêng biệt này, cho phép các nhóm cập nhật neural network xếp hạng một cách độc lập mà không làm gián đoạn toàn bộ trải nghiệm mua sắm, tạo điều kiện thuận lợi cho việc tích hợp liên tục (continuous integration).
Link to this sectionPhân biệt Kubernetes và Docker#
Một điểm gây nhầm lẫn phổ biến là mối quan hệ giữa Kubernetes và Docker. Chúng không phải là đối thủ cạnh tranh mà là các công nghệ bổ sung cho nhau. Docker là một công cụ để tạo và chạy các container riêng lẻ (đóng gói ứng dụng), trong khi Kubernetes là một công cụ để quản lý một nhóm các container đó trên nhiều máy. Bạn sử dụng Docker để xây dựng model weights và mã nguồn của mình thành một image, sau đó sử dụng Kubernetes để xác định nơi nào, khi nào và bao nhiêu bản sao của image đó sẽ chạy trong môi trường sản xuất.
Link to this sectionVí dụ: Script suy luận cho Containerization#
Để triển khai một mô hình trên Kubernetes, các lập trình viên thường bắt đầu với một script Python đóng vai trò là điểm vào cho container. Đoạn mã sau đây minh họa một tác vụ suy luận đơn giản sử dụng mô hình Ultralytics YOLO26. Script này sẽ chạy bên trong một pod, xử lý các yêu cầu đến.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")Link to this sectionCông cụ và Hệ sinh thái#
Hệ sinh thái Kubernetes bao gồm một loạt các công cụ được tùy chỉnh cho khoa học dữ liệu. Kubeflow là một bộ công cụ phổ biến chuyên dùng để thực hiện việc triển khai các quy trình ML trên Kubernetes một cách đơn giản, di động và có khả năng mở rộng. Để giám sát tình trạng cụm và các số liệu ứng dụng, các kỹ sư thường dựa vào Prometheus. Để đơn giản hóa hơn nữa sự phức tạp của việc huấn luyện và triển khai các mô hình vào các môi trường này, Ultralytics Platform cung cấp một giao diện hợp nhất giúp tự động hóa việc quản lý tập dữ liệu và huấn luyện mô hình, cho phép người dùng xuất các mô hình sẵn sàng cho các cụm cloud computing. Ngoài ra, các trình quản lý gói như Helm giúp quản lý các ứng dụng Kubernetes phức tạp thông qua các biểu đồ (charts) có thể tái sử dụng.






