Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024
Bảng chú giải thuật ngữ

Kubernetes

Khám phá cách Kubernetes đơn giản hóa khối lượng công việc AI/ML với khả năng triển khai mô hình có thể mở rộng, huấn luyện phân tán và quản lý tài nguyên hiệu quả.

Kubernetes, thường được viết tắt là K8s, là một nền tảng điều phối container mã nguồn mở, tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng container hóa. Ban đầu được phát triển bởi Google và hiện được duy trì bởi Cloud Native Computing Foundation (CNCF), Kubernetes cung cấp một framework mạnh mẽ để chạy các hệ thống phân tán, có khả năng phục hồi. Trong bối cảnh Trí tuệ Nhân tạo (AI)Machine Learning (ML), nó đã trở thành một công cụ thiết yếu để quản lý toàn bộ vòng đời của các mô hình ML, từ huấn luyện đến triển khai trong môi trường production.

Cách Kubernetes hoạt động

Kubernetes hoạt động trên một cluster các máy, có thể là máy chủ vật lý hoặc máy ảo, tại chỗ hoặc trên cloud. Các thành phần chính bao gồm:

  • Cluster: Một tập hợp các node (máy worker) chạy các ứng dụng container hóa.
  • Node (Nút): Một máy worker (máy công nhân) trong một cụm Kubernetes. Mỗi node (nút) chạy một Kubelet, là một agent (tác nhân) để quản lý node (nút) và giao tiếp với control plane (mặt phẳng điều khiển).
  • Pod: Đơn vị nhỏ nhất và đơn giản nhất trong mô hình đối tượng Kubernetes. Một Pod đại diện cho một thể hiện duy nhất của một quy trình đang chạy trong một cluster và có thể chứa một hoặc nhiều container, chẳng hạn như container Docker.
  • Triển khai: Quản lý một tập hợp các Pod bản sao, đảm bảo rằng một số lượng được chỉ định trong số chúng luôn chạy. Nó tự động xử lý các bản cập nhật và rollback.

Bằng cách trừu tượng hóa phần cứng cơ bản, Kubernetes cho phép các nhà phát triển và kỹ sư MLOps xác định trạng thái mong muốn của ứng dụng và nó hoạt động để duy trì trạng thái đó, tự động xử lý các lỗi và nhu cầu mở rộng. Bạn có thể tìm hiểu thêm từ tài liệu chính thức của Kubernetes.

Kubernetes trong AI và Machine Learning

Kubernetes đặc biệt mạnh mẽ cho Machine Learning Operations (MLOps) vì nó giải quyết nhiều thách thức liên quan đến việc xây dựng và triển khai các hệ thống AI ở quy mô lớn. Khả năng quản lý tài nguyên hiệu quả của nó làm cho nó trở nên lý tưởng cho các tác vụ sử dụng nhiều tài nguyên như huấn luyện mô hình. Kubernetes có thể mở rộng các công việc huấn luyện trên nhiều GPU và nodes, giảm đáng kể thời gian huấn luyện.

Đối với suy luận, Kubernetes đảm bảo tính khả dụng và khả năng mở rộng cao. Dưới đây là một vài ví dụ thực tế:

  1. Dịch vụ phát hiện đối tượng có khả năng mở rộng: Một công ty triển khai mô hình Ultralytics YOLO11 để phát hiện đối tượng theo thời gian thực dưới dạng một dịch vụ web. Mô hình được đóng gói vào một container. Sử dụng Kubernetes, họ có thể tự động tăng hoặc giảm số lượng inference pod dựa trên lưu lượng truy cập đến. Nếu một node bị lỗi, Kubernetes sẽ tự động lên lịch lại các pod sang các node khỏe mạnh, đảm bảo dịch vụ luôn khả dụng mà không cần can thiệp thủ công. Đây là một mô hình phổ biến để triển khai các mô hình trong các hệ thống giám sát thông minh.
  2. Quy Trình NLP Phức Tạp Dưới Dạng Microservice: Một nhóm xây dựng một ứng dụng Xử Lý Ngôn Ngữ Tự Nhiên (NLP) bao gồm nhiều bước: tiền xử lý văn bản, phân tích tình cảm và nhận dạng thực thể được đặt tên. Mỗi thành phần là một microservice riêng biệt, được container hóa độc lập. Kubernetes điều phối các dịch vụ này, quản lý mạng của chúng và cho phép mỗi phần được cập nhật và mở rộng độc lập. Kiến trúc này cung cấp sự linh hoạt và khả năng phục hồi cho các ứng dụng dựa trên AI phức tạp.

So sánh Kubernetes với các công nghệ liên quan

  • Kubernetes so với Docker: Docker là một công cụ để xây dựng và chạy các container riêng lẻ. Kubernetes là một trình điều phối (orchestrator) cho các container, quản lý hàng ngàn container trên nhiều máy. Chúng không phải là đối thủ cạnh tranh mà là cộng tác viên; bạn xây dựng các ảnh container bằng Docker và sau đó quản lý chúng bằng Kubernetes. Bạn có thể bắt đầu với những điều cơ bản bằng cách làm theo hướng dẫn Bắt đầu nhanh Docker.
  • Kubernetes so với Điện toán phi máy chủ (Serverless Computing): Các nền tảng phi máy chủ (Serverless platforms) như AWS Lambda trừu tượng hóa tất cả việc quản lý máy chủ. Ngược lại, Kubernetes cung cấp nhiều quyền kiểm soát hơn đối với cơ sở hạ tầng, làm cho nó tốt hơn cho các ứng dụng chạy dài hoặc có trạng thái. Mặc dù serverless đơn giản hơn cho các chức năng hướng sự kiện, nhưng các framework serverless có thể chạy trên Kubernetes bằng các công cụ như Knative.

Công cụ và Hệ sinh thái

Hệ sinh thái Kubernetes rất rộng lớn và bao gồm nhiều công cụ để mở rộng chức năng của nó:

  • Helm: Thường được gọi là trình quản lý gói cho Kubernetes, Helm giúp bạn quản lý các ứng dụng Kubernetes.
  • Prometheus & Grafana: Một sự kết hợp phổ biến để giám sát các cụm và ứng dụng Kubernetes.
  • Tích hợp nhà cung cấp đám mây: Các nhà cung cấp đám mây lớn cung cấp các dịch vụ Kubernetes được quản lý, chẳng hạn như Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS)Azure Kubernetes Service (AKS), giúp đơn giản hóa việc thiết lập và bảo trì cụm.
  • ML Platforms: Các công cụ như Kubeflow được xây dựng trên Kubernetes để cung cấp các quy trình làm việc dành riêng cho ML cho các pipeline, huấn luyện và triển khai. Các nền tảng như Ultralytics HUB hợp lý hóa pipeline MLOps, thường trừu tượng hóa các phức tạp của Kubernetes để triển khai mô hình dễ dàng hơn.

Tham gia cộng đồng Ultralytics

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay
Đã sao chép liên kết vào clipboard