Lập trình viên tự xây Kubernetes chạy trên vi điều khiển ESP32-S3
Dự án kube32 mang một control plane tương thích Kubernetes cùng runtime pod WebAssembly lên chip ESP32-S3, cho phép dùng kubectl và k9s để quản lý cụm bo mạch qua Wi-Fi hoặc cổng nối tiếp USB. Đây là thử nghiệm thú vị cho thấy Kubernetes có thể thu gọn đến mức nào.

Lập trình viên tự xây Kubernetes chạy trên vi điều khiển ESP32-S3
Một dự án mã nguồn mở có tên kube32 vừa gây chú ý trên Hacker News khi đưa control plane tương thích Kubernetes lên chip ESP32-S3 — dòng vi điều khiển giá rẻ quen thuộc trong thế giới IoT. Pod trong hệ thống này là các module WebAssembly chạy bằng trình thông dịch wasm3, và người dùng vẫn có thể quản lý cụm bằng kubectl hoặc k9s như một cluster thật.
Trạng thái CI của dự án kube32
Ý tưởng: thu nhỏ Kubernetes đến mức tối đa
Điểm đáng chú ý nhất của kube32 là một firmware duy nhất chạy trên mọi bo mạch. Bo có PSRAM sẽ đảm nhận vai trò control plane và chạy kubelet cục bộ, trong khi các bo không có PSRAM tham gia cụm với tư cách worker. Toàn bộ mã nguồn cũng dùng để build kube32-sim, một trình giả lập chạy trên macOS và Linux, giúp lập trình viên thử nghiệm mà không cần mua phần cứng.
Cụm thiết bị được quản lý qua Wi-Fi hoặc cổng nối tiếp USB, nghĩa là bạn có thể ngồi trên máy tính và điều khiển một mạng lưới bo mạch nhúng bằng đúng những công cụ đã quen thuộc trong môi trường cloud.
Trạng thái build tài liệu của kube32
Những gì kube32 hỗ trợ
Dù chạy trên phần cứng hạn chế, kube32 hỗ trợ khá đầy đủ các tài nguyên quen thuộc của Kubernetes:
- API serving cho Pod, Node, Namespace, Service, Endpoints, EndpointSlice, Ingress, Deployment, DaemonSet, Job, ConfigMap, Secret, Lease, Event và metrics — bao gồm watch stream, định dạng bảng Table, kiểm tra hợp lệ OpenAPI v3 và xem log trực tiếp.
- Pod WebAssembly chạy trên wasm3, có SDK và template cho Rust, C và AssemblyScript, với hai kiểu ABI (request-handler và entry-point), giới hạn bộ nhớ và ngân sách gas cho từng lần gọi.
- Định tuyến Service, Ingress HTTP theo host và prefix, luồng Server-Sent Events, gói tài nguyên tĩnh nhúng sẵn và gọi HTTP đồng bộ giữa các pod.
- Lưu trữ bền vững dựa trên journal có kiểm tra CRC trên phân vùng flash thô hoặc thẻ microSD, kèm volume cho pod và log được luân chuyển.
- Tường lửa quyền năng theo từng pod, kiểm soát chân GPIO, kênh ADC, bus I2C/UART, màn hình ST7789, ma trận phím, loa I2S và thẻ nhớ.
- Quản lý vòng đời container với
restartPolicyAlways/OnFailure/Never, cơ chế CrashLoopBackOff lũy tiến và mã thoát riêng cho lỗi Wasm, cạn gas hay OOMKilled. - Xác thực bằng bearer token và TLS tự ký ECDSA P-256 trên cổng 6443 (tùy chọn).
- Cập nhật firmware từng node một, kiểm tra SHA-256 và tự rollback nếu image không khởi động được.
- Sự kiện pub/sub qua ESP-NOW và UDP cổng 7400, giúp các node đồng bộ thông tin với nhau.
Phần cứng cần thiết
Yêu cầu cấu hình khá khiêm tốn:
- Control plane: ESP32-S3, 8 MB flash, tối thiểu 2 MB PSRAM quad SPI. Bo tham chiếu là devkit ESP32-S3 phổ thông.
- Worker: bất kỳ ESP32-S3 nào có 8 MB flash. Bo tham chiếu là M5Stack Cardputer với màn hình ST7789, bàn phím, loa và khe microSD.
Chi tiết phân bổ chân và ngân sách bộ nhớ được ghi trong tài liệu docs/hardware-spec.md của dự án.
Ứng dụng mẫu: Tessera
Để chứng minh hệ thống hoạt động thực tế, tác giả xây dựng Tessera — một ứng dụng theo dõi vấn đề (issue tracker) gồm bốn pod WebAssembly được định tuyến qua Ingress. Hai pod tessera-web và tessera-api chạy trên control plane để phục vụ giao diện web và chỉ mục tìm kiếm trong bộ nhớ. Hai pod tessera-db và tessera-hud chạy trên Cardputer, ghi dữ liệu vào log chỉ-thêm trên thẻ microSD và điều khiển màn hình LCD cùng bàn phím. Đây là minh họa rõ nét cho mô hình tách biệt compute và peripheral mà kube32 hướng tới.
Góc nhìn cho cộng đồng Việt Nam
Với những ai đang làm IoT hoặc nghiên cứu hệ thống nhúng, kube32 là ví dụ đáng tham khảo về việc áp dụng tư duy cloud-native xuống thiết bị biên. Chi phí phần cứng thấp — chỉ vài trăm nghìn đồng cho một bo ESP32-S3 — khiến đây trở thành môi trường học tập Kubernetes và WebAssembly khá lý tưởng, đặc biệt khi có sẵn trình giả lập chạy trên máy tính.
Dự án phát hành theo giấy phép Apache 2.0, riêng wasm3 dùng giấy phép MIT. Tài liệu đầy đủ và hướng dẫn cài đặt có tại trang GitHub Pages của dự án, và tác giả cũng hoan nghênh đóng góp từ cộng đồng.
Điều thú vị không nằm ở việc chạy được Kubernetes trên chip nhỏ, mà ở chỗ nó buộc người thiết kế phải trả lời câu hỏi: tối thiểu bao nhiêu thành phần thì vẫn đủ để gọi là "cloud-native"?
Bài viết liên quan
Công nghệ
Cách GCC xử lý câu lệnh switch: Bảng nhảy, bitset và cây so sánh
31 tháng 10, 2026

Công nghệ
Xây dựng tổ chức kỹ thuật thuần AI: Bài học từ 9 tháng thử nghiệm
29 tháng 10, 2026
Công nghệ
OpenAI bảo vệ nguyên tắc "sử dụng hợp lý" trong huấn luyện AI: Lợi ích cho tất cả mọi người
30 tháng 10, 2026