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.

IT ManagerSystem / InfraDevOps / PlatformCTO / CIOBFSI • Giáo dục

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):

Dùng chung

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.

Tự động

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.

Bền vững

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.

Kiến trúc Kubernetes trên Proxmox VELỚP ỨNG DỤNGNgười dùng, API, ứng dụng nội bộ gọi vào Ingress / LoadBalancer của cụmCỤM KUBERNETES (CÁC NODE LÀ MÁY ẢO)Control plane 1Control plane 2Control plane 3Worker 1Worker 2Worker NVM NGHIỆP VỤ HIỆN CÓERP, cơ sở dữ liệu,file server, ứng dụng cũChạy cạnh cụm Kubernetestrên cùng hạ tầngProxmox VE clusterHA · SDN (VLAN, VXLAN, EVPN) · Firewall · Template + cloud-init · Sao lưu PBSCeph RBD / CephFS (hyper-converged)đĩa của VM node và persistent volume cho pod qua Ceph CSIMáy chủ Supermicro 1CPU, RAM, NVMe, NIC 25GbEMáy chủ Supermicro 2CPU, RAM, NVMe, NIC 25GbEMáy chủ Supermicro 3CPU, RAM, NVMe, NIC 25GbE
Hình 1. Kiến trúc Kubernetes trên Proxmox VE: node Kubernetes là máy ảo, chạy cạnh VM nghiệp vụ; Proxmox lo HA, mạng, sao lưu; Ceph cung cấp đĩa cho VM và volume cho pod. Chấm tròn minh họa một yêu cầu đi từ ứng dụng xuống pod rồi tới lưu trữ.

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:

So sánh cách đặt node Kubernetes trên Proxmox VE
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
Ổ cloud-init trên máy ảo Proxmox VE dùng làm template cho node Kubernetes trên Proxmox
Ảnh 1. Ổ CloudInit gắn vào máy ảo trong giao diện Proxmox VE. Từ một VM template có cloud-init, có thể tạo linked clone cho từng node Kubernetes với tên máy, IP và SSH key riêng. Nguồn: Proxmox VE Documentation

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).

Bố trí VM trên ba host ProxmoxHost A (Supermicro)CP-1 + etcdWorker 1Worker 4Ceph OSD · MONHost B (hỏng)CP-2 + etcd (mất)Worker 2Worker 5Ceph OSD · MONHost C (Supermicro)CP-3 + etcdWorker 3Worker 2 (HA khởi động lại)etcd còn 2/3 thành viên: vẫn đủ quorum, cụm tiếp tục nhận thay đổiQuy tắc: mỗi host tối đa một VM control plane; worker trải đều; dành dư địa để chứa VM khi một host dừng
Hình 2. Ba VM control plane đặt trên ba host khác nhau. Khi host B dừng, etcd còn 2/3 thành viên nên cụm vẫn hoạt động; Proxmox HA khởi động lại VM worker trên host còn dư tài nguyên, Kubernetes lập lịch lại pod.

Để 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).

Cấu hình VM khởi điểm cho cụm Kubernetes trên Proxmox (gợi ý, cần sizing theo tải)
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.

Màn hình trạng thái HA của Proxmox VE quản lý VM node Kubernetes
Ảnh 2. Màn hình trạng thái HA trong Proxmox VE: quorum, master và danh sách tài nguyên được HA quản lý. Nguồn: Proxmox VE Documentation

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.

Chọn loại volume Ceph cho Kubernetes (theo Ceph CSI)
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ỏ
Luồng ghi persistent volume qua Ceph CSIPodứng dụng có trạng tháiPVCStorageClass ceph-rbdCeph CSItạo RBD image độngPool RBD trên cụm Cephmạng Ceph public, 25GbE trở lênHost AOSD NVMeOSD NVMebản sao 1Host BOSD NVMeOSD NVMebản sao 2Host COSD NVMeOSD NVMebản sao 3GHI 3 BẢN SAO (MẶC ĐỊNH SIZE 3)
Hình 3. Pod yêu cầu volume qua PVC; Ceph CSI tạo RBD image trên pool Ceph của chính cụm Proxmox; dữ liệu được ghi thành 3 bản sao trên 3 host, nên mất một host không mất dữ liệu.

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.

Các mặt phẳng mạng của cụmHost SupermicroProxmox VE + CephNIC 1GbE / BMC2× 25GbE: Ceph2× 25GbE: VMBridge / SDNQuản trị + Corosyncgiao diện Proxmox, đồng bộ cụm, IPMICeph public / clustertối thiểu 10 Gbps riêng, nên 25 Gbps trở lênVLAN / VXLAN cụm Kuberneteslưu lượng node, overlay CNI của podVLAN ứng dụng / IngressIP LoadBalancer cho người dùng
Hình 4. Tách lưu lượng thành bốn mặt phẳng: quản trị và Corosync, Ceph, mạng node Kubernetes và mạng ứng dụng. Số cổng và tốc độ là ví dụ cho cụm 3–8 node.

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ụ.

RAM mỗi host ≥ (tổng RAM các VM ÷ (số host − 1)) + 8 GiB × số OSD + 2 GB + dư địa
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:

Máy chủ Supermicro SYS-222BT-HNR BigTwin 4 node cho cụm Kubernetes trên Proxmox
Ảnh 3. Supermicro SYS-222BT-HNR (BigTwin 2U, 4 node; mỗi node 2× Intel Xeon 6700/6500, tối đa 4 TB DDR5, 6 khay NVMe PCIe 5.0). Nguồn: Supermicro
Máy chủ Supermicro AS -1126HS-TN Hyper 1U AMD EPYC cho node Proxmox
Ảnh 4. Supermicro AS -1126HS-TN (Hyper 1U; 2× AMD EPYC 9005/9004, 24 DIMM tối đa 6 TB, 8 khay 2,5″ NVMe/SATA). Nguồn: Supermicro
Gợi ý phần cứng theo quy mô (tham khảo, cần sizing chi tiết)
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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

  1. Đặ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.
  2. Để 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.
  3. 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.
  4. Bỏ qua MTU khi chồng overlay của CNI lên zone VXLAN của Proxmox.
  5. 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.

Đọc thêm về Proxmox và hạ tầng cloud