Kubernetes trên Proxmox VE với máy chủ Supermicro
Cloud • Proxmox VE • Kubernetes • Máy chủ Supermicro
Chạy Kubernetes trên Proxmox VE là cách nhiều doanh nghiệp đưa container vào vận hành mà không phải dựng thêm một hạ tầng riêng: các node Kubernetes là máy ảo, nằm cùng cụm Proxmox với các VM nghiệp vụ, dùng chung lưu trữ Ceph, mạng SDN và cơ chế HA. Bài viết trình bày kiến trúc tham chiếu, cách bố trí control plane, lưu trữ, mạng và cấu hình máy chủ Supermicro cho cụm từ 3 node trở lên.
1. Vì sao chạy Kubernetes trên Proxmox thay vì bare metal
Kubernetes có thể cài thẳng lên máy chủ vật lý. Nhưng với phần lớn doanh nghiệp đang có cụm ảo hóa, nhất là sau khi chuyển VMware sang Proxmox, đặt các node Kubernetes thành máy ảo trên Proxmox VE mang lại ba lợi ích thực tế (Hình 1):
Một hạ tầng cho VM và container
Ứng dụng container chạy cạnh ERP, cơ sở dữ liệu và các VM hiện có, cùng một lớp quản trị, giám sát và sao lưu.
Dựng node trong vài phút
VM template, linked clone và cloud-init giúp tạo node mới với mạng và SSH key cấu hình sẵn, thuận tiện khi mở rộng hay thay node.
HA và sao lưu ở tầng ảo hóa
HA của Proxmox khởi động lại VM trên host khác khi một máy chủ hỏng; Proxmox Backup Server sao lưu cả VM node.
Bare metal vẫn hợp lý khi cụm chỉ chạy Kubernetes hoặc cần độ trễ thấp nhất. Với hạ tầng hỗn hợp, lớp ảo hóa đổi một phần nhỏ hiệu năng lấy sự linh hoạt trong vận hành.
2. Node Kubernetes trên Proxmox nên là VM hay LXC
Proxmox VE có hai loại guest: máy ảo QEMU/KVM và container LXC. LXC nhẹ hơn, nhưng dùng chung kernel với host. Tài liệu Proxmox viết rằng với các trường hợp cần cách ly tối đa và khả năng live-migrate, chạy container lồng bên trong một máy ảo QEMU của Proxmox vẫn là cách được khuyến nghị.
Từ Proxmox VE 9.1, có thể tạo LXC từ image OCI (“Application Containers”), nhưng Proxmox ghi rõ tính năng này đang ở dạng technology preview. Tính năng này không thay thế Kubernetes, nên kiến trúc trong bài dùng máy ảo cho mọi node Kubernetes:
| Tiêu chí | Node là VM (khuyến nghị) | Node là LXC |
|---|---|---|
| Cách ly | Kernel riêng cho mỗi node | Dùng chung kernel host, cần nới quyền (nesting, keyctl) |
| Live migration | Có, khi lưu trữ dùng chung và CPU type tương thích | Không live-migrate; container phải khởi động lại khi chuyển host |
| Hệ điều hành node | Tùy chọn: Ubuntu, Rocky, Talos Linux… | Phụ thuộc kernel và module của host |
| Phù hợp | Cụm production, nhiều nhóm dùng chung | Lab, thử nghiệm |


3. Kiến trúc cụm Kubernetes trên Proxmox và control plane HA
Kubernetes có hai cách bố trí control plane HA: stacked etcd (etcd chạy ngay trên node control plane, dễ dựng hơn) và external etcd (etcd tách riêng, cần gấp đôi số máy). Tài liệu kubeadm khuyến nghị tối thiểu 3 node control plane cho cụm HA với stacked etcd. Với cụm vừa và nhỏ trên Proxmox, stacked etcd là lựa chọn hợp lý.
Điểm quan trọng nhất khi ảo hóa: ba VM control plane phải nằm trên ba máy chủ vật lý khác nhau. Nếu hai VM control plane cùng nằm trên một host và host đó hỏng, etcd mất đa số (quorum) và cụm không nhận thay đổi mới. Proxmox HA cũng yêu cầu tối thiểu 3 node để có quorum tin cậy (Hình 2).
Để giữ quy tắc này khi cụm vận hành lâu dài, Anh/Chị nên dùng quy tắc HA của Proxmox để ghim hoặc tách các VM control plane, và đặt một địa chỉ ảo (VIP) hoặc bộ cân bằng tải cho API server. Từ Proxmox VE 9.2, HA có thêm cân bằng tải động qua Cluster Resource Scheduler và lệnh disarm-ha/arm-ha để bảo trì mà không kích hoạt fencing (xem tính năng mới của Proxmox VE 9.2).
| Vai trò | Số VM | vCPU | RAM | Căn cứ |
|---|---|---|---|---|
| Control plane + etcd | 3 | 4 | 8 GB | kubeadm: tối thiểu 2 CPU, 2 GB; etcd: 2–4 nhân, 8 GB thường đủ |
| Worker | 3 trở lên | 8–16 | 16–64 GB | Theo tải ứng dụng; Talos gợi ý worker tối thiểu 4 nhân, 8 GB |
| Cân bằng tải API (tùy chọn) | 2 | 2 | 2 GB | Giữ một địa chỉ ổn định cho API server |
Hai thiết lập VM hay bị bỏ sót: tắt swap trong hệ điều hành node, vì theo tài liệu kubeadm, mặc định kubelet không khởi động khi phát hiện swap; và chọn CPU type phù hợp. Kiểu host cho hiệu năng tốt nhất nhưng tài liệu Talos lưu ý nó ngăn live migration; nếu cần di chuyển VM khi bảo trì, hãy chọn một kiểu CPU chung cho cả cụm.


4. Lưu trữ cho cụm: etcd và persistent volume
Đĩa cho etcd
Tài liệu etcd nhấn mạnh etcd rất nhạy với độ trễ ghi đĩa, khuyến nghị đặt dữ liệu etcd trên SSD; thông thường cần khoảng 50 IOPS tuần tự, cụm tải nặng cần khoảng 500. Trên Proxmox, nghĩa là đĩa của VM control plane nên nằm trên pool NVMe/SSD có bảo vệ mất điện (PLP), không đặt chung pool với tải ghi lớn như sao lưu.
Persistent volume với Ceph CSI
Khi cụm Proxmox đã chạy Ceph hyper-converged (xem thiết kế cụm Proxmox VE với Ceph), cách gọn nhất là dùng Ceph CSI để Kubernetes tự tạo volume trên chính cụm Ceph đó (Hình 3). Ceph CSI tạo RBD image động cho mỗi PersistentVolumeClaim.
| Loại | Chế độ truy cập | Phù hợp |
|---|---|---|
| RBD, mount dạng filesystem | RWO (RWX chỉ ở chế độ raw block) | Cơ sở dữ liệu, hàng đợi, ứng dụng có trạng thái một pod ghi |
| CephFS (file) | RWO, RWX | Nhiều pod cùng đọc ghi: thư mục dùng chung, nội dung web, dữ liệu huấn luyện nhỏ |
Với cơ sở dữ liệu cần độ trễ thấp và ổn định hơn, có thể bổ sung lưu trữ khối NVMe/TCP. Ngày 29/10/2026, Proxmox công bố Lightbits trở thành Solution Provider chính thức, với plugin tích hợp gốc cho phép tạo, mở rộng, snapshot đĩa VM ngay trên giao diện Proxmox VE và hỗ trợ live migration, HA. Ở tầng container, Lightbits cũng có CSI cho Kubernetes (xem Lightbits cho tác vụ container trên Supermicro).
5. Thiết kế mạng cho cụm Kubernetes
Một cụm Kubernetes trên Proxmox có hai lớp mạng chồng lên nhau: mạng của Proxmox (host và VM) và mạng pod do CNI của Kubernetes tạo. Thiết kế tốt bắt đầu từ việc tách lưu lượng thành các mặt phẳng riêng (Hình 4):
- Quản trị và Corosync: giao diện Proxmox, đồng bộ cụm; nên có đường dự phòng.
- Ceph: Proxmox khuyến nghị tối thiểu 10 Gbps dành riêng, từ 25 Gbps cho hệ thống hiệu năng cao; cụm toàn NVMe có thể cần 40 hoặc 100 Gbps trở lên.
- Mạng VM node: VLAN hoặc zone SDN riêng cho cụm Kubernetes. Proxmox SDN hỗ trợ zone Simple, VLAN, QinQ, VXLAN và EVPN; zone EVPN dùng BGP để định tuyến lớp 3 giữa các host.
- Lối vào ứng dụng: dải IP cho LoadBalancer/Ingress nằm trong VLAN có thể định tuyến từ mạng người dùng.
Với ngân hàng hay trường đại học, có thể tách zone SDN theo môi trường (production, kiểm thử) hoặc theo khoa, phòng ban, kết hợp firewall của Proxmox để cô lập lưu lượng giữa các cụm.
Khi CNI dùng overlay (VXLAN, Geneve) chạy trong VM nằm trên zone VXLAN của Proxmox, gói tin bị đóng gói hai lần. Theo tài liệu Proxmox, đóng gói VXLAN tốn 50 byte, nên MTU của zone phải thấp hơn cổng vật lý 50 byte; lớp overlay của CNI lại trừ tiếp. Anh/Chị cần tính MTU từ đầu, nếu không sẽ gặp lỗi kết nối treo với gói lớn. Cách đơn giản hơn là đặt node trên VLAN thường.
6. Chọn máy chủ Supermicro cho cụm Kubernetes trên Proxmox
Mỗi host chạy cùng lúc Proxmox VE, Ceph và các VM node. Theo Proxmox, Ceph cần tối thiểu 8 GiB RAM cho mỗi OSD, và một OSD trên NVMe có thể dùng 4–6 luồng CPU; bản thân Proxmox VE cần khoảng 2 GB cho hệ điều hành và dịch vụ.
Ví dụ: 3 VM control plane × 8 GB + 6 VM worker × 32 GB = 216 GB; cụm 3 host, mỗi host 4 OSD NVMe
→ 216 ÷ 2 = 108 GB + 32 GiB + 2 GB ≈ 142 GB → chọn 256 GB mỗi host để còn chỗ mở rộng
Chia cho (số host − 1) để khi một host dừng, hai host còn lại vẫn chứa đủ VM. Hai dòng máy chủ Supermicro phù hợp với cách tính này:




| Quy mô | Máy chủ Supermicro | Thông số chính (theo trang hãng) | Ghi chú |
|---|---|---|---|
| Khởi đầu, 3–4 node mật độ cao | BigTwin SYS-222BT-HNR | 2U 4 node; mỗi node 2 CPU Xeon 6700/6500 P-core tới 86 nhân hoặc 6700 E-core tới 144 nhân; 16 DIMM, tối đa 4 TB DDR5-6400; 6 khay NVMe PCIe 5.0 + 2 M.2; 2 khe PCIe 5.0 x16 + 1 AIOM | 4 node chung khung và nguồn; khi lên 5–8 node nên trải trên 2 khung trở lên |
| Mỗi node một máy, nhiều nhân | Hyper AS -1126HS-TN | 1U; 2× AMD EPYC 9005/9004, tổng tối đa 384 nhân; 24 DIMM, tối đa 6 TB; 8 khay 2,5″ (tùy chọn 12); 3 khe PCIe 5.0 x16 + AIOM | Hợp với worker cần nhiều vCPU và RAM |
| Mỗi node một máy, Intel | Hyper SYS-121H-TNR | 1U; 2× Xeon Scalable thế hệ 4/5, tới 64 nhân mỗi CPU; 32 DIMM, tối đa 8 TB (2DPC); 8 khay 2,5″ (tùy chọn 12); 3 khe PCIe 5.0 x16 + AIOM | Đồng bộ với hạ tầng Intel đang có |
Nếu cụm cần chạy suy luận AI, có thể thêm node worker là máy chủ GPU (xem máy chủ GPU Supermicro) và gắn GPU vào VM worker qua PCI passthrough. Cách chọn phần cứng cho cụm Proxmox nói chung được phân tích kỹ hơn trong bài máy chủ Supermicro cho Proxmox VE và Ceph.
7. Các bước triển khai Kubernetes trên Proxmox VE
- Chuẩn bị cụm Proxmox: tối thiểu 3 host, Ceph với 3 bản sao, các VLAN hoặc zone SDN cho cụm Kubernetes, pool NVMe cho đĩa VM control plane.
- Tạo VM template: cài hệ điều hành node (hoặc dùng image Talos), gắn ổ cloud-init, tắt swap, bật QEMU guest agent nếu hệ điều hành hỗ trợ, rồi chuyển thành template.
- Tạo node bằng linked clone: 3 control plane trên 3 host khác nhau, worker trải đều; cấu hình quy tắc HA để giữ cách bố trí này.
- Dựng cụm Kubernetes: kubeadm với stacked etcd và địa chỉ API dùng chung, hoặc bản phân phối Kubernetes đội ngũ đã quen; cài CNI, chú ý MTU.
- Kết nối lưu trữ: cài Ceph CSI, tạo StorageClass cho RBD và CephFS; thử tạo, mở rộng, snapshot volume.
- Sao lưu và giám sát: sao lưu VM node bằng Proxmox Backup Server, chụp snapshot etcd định kỳ, giám sát cả tầng host lẫn tầng cụm.
Kubernetes hiện bảo trì ba nhánh 1.37, 1.36 và 1.35 (v1.37 ra ngày 26/08/2026), nên kế hoạch nâng cấp định kỳ cần có ngay từ khi thiết kế.
8. 5 sai lầm thường gặp
- Đặt hai VM control plane trên cùng một host, khiến một sự cố phần cứng làm mất quorum etcd.
- Để etcd trên pool đĩa chậm hoặc dùng chung với tải sao lưu, gây trễ ghi và API server phản hồi chậm.
- Không tính dư địa N−1: khi một host dừng, các host còn lại không đủ RAM để HA khởi động lại VM worker.
- Bỏ qua MTU khi chồng overlay của CNI lên zone VXLAN của Proxmox.
- Chạy node Kubernetes production trong LXC, mất cách ly kernel và khả năng live migration.
9. Câu hỏi thường gặp
Có nên chạy Kubernetes trên Proxmox cho môi trường production không?
Có, nếu thiết kế đúng: node là máy ảo, 3 control plane trên 3 host khác nhau, etcd trên đĩa NVMe/SSD, lưu trữ dùng chung qua Ceph CSI và mạng Ceph riêng tối thiểu 10 Gbps. Cách này giúp chạy container và VM nghiệp vụ trên cùng một hạ tầng.
Node Kubernetes trên Proxmox nên dùng VM hay LXC?
Nên dùng VM. Proxmox khuyến nghị lồng container vào máy ảo QEMU khi cần cách ly tối đa và live migration. Tính năng tạo LXC từ image OCI trong Proxmox VE 9.1 vẫn là technology preview.
Cụm Kubernetes trên Proxmox cần tối thiểu bao nhiêu máy chủ?
Tối thiểu 3 máy chủ vật lý: Proxmox HA cần 3 node để có quorum, Ceph cần ít nhất 3 node, và 3 VM control plane cần nằm trên 3 host khác nhau để etcd chịu được một host hỏng.
Lưu trữ persistent volume cho Kubernetes trên Proxmox dùng gì?
Khi cụm Proxmox đã có Ceph, dùng Ceph CSI: RBD cho volume một pod ghi (RWO) như cơ sở dữ liệu, CephFS cho volume nhiều pod cùng ghi (RWX). Tải cần độ trễ thấp có thể bổ sung lưu trữ NVMe/TCP.
Máy chủ Supermicro nào phù hợp cho cụm Kubernetes trên Proxmox?
BigTwin SYS-222BT-HNR (2U 4 node) phù hợp cụm khởi đầu cần mật độ cao; Hyper 1U như AS -1126HS-TN hoặc SYS-121H-TNR phù hợp khi mỗi node là một máy riêng. RAM mỗi host cần đủ cho VM, Ceph và dư địa khi một host dừng.

