Quay lại danh sách
Tin tức công nghệ

Kubernetes trên VPS: Hướng dẫn xây dựng K8s cluster chuyên nghiệp với ngân sách dưới 50 USD/tháng

12 tháng 5, 2026

Tại sao nên triển khai Kubernetes trên VPS?

Kubernetes đã trở thành tiêu chuẩn công nghiệp cho container orchestration, nhưng các dịch vụ managed Kubernetes như EKS, GKE hay AKS thường có chi phí khởi điểm cao, không phù hợp với startup hoặc dự án quy mô nhỏ. Triển khai K8s trên VPS mang lại sự kiểm soát hoàn toàn, chi phí dự đoán được và cơ hội học hỏi sâu về kiến trúc Kubernetes.

Với ngân sách dưới 50 USD/tháng, bạn hoàn toàn có thể xây dựng một cluster Kubernetes ổn định cho môi trường development, staging, hoặc thậm chí production với traffic vừa phải. Bài viết này sẽ hướng dẫn chi tiết từng bước để bạn có thể tự tin triển khai K8s cluster của riêng mình.

Lựa chọn nhà cung cấp VPS phù hợp

Việc chọn nhà cung cấp VPS đóng vai trò quan trọng trong hiệu suất và độ ổn định của cluster. Dưới đây là các tiêu chí cần xem xét:

Các nhà cung cấp được khuyến nghị

  • DigitalOcean: Droplets với giá từ 6 USD/tháng, network performance tốt, documentation phong phú
  • Linode (Akamai): Giá cạnh tranh, băng thông không giới hạn, hỗ trợ kỹ thuật xuất sắc
  • Vultr: Nhiều datacenter locations, giá linh hoạt từ 5 USD/tháng
  • Hetzner Cloud: Chi phí thấp nhất (từ 4.5 EUR/tháng), hiệu năng cao, phù hợp cho thị trường châu Âu

Cấu hình VPS đề xuất cho cluster 3 nodes

Để xây dựng một cluster production-ready với high availability, cấu hình tối thiểu nên bao gồm:

  • Control Plane Node: 2 vCPU, 4GB RAM, 50GB SSD (~12-15 USD/tháng)
  • Worker Node 1: 2 vCPU, 2GB RAM, 40GB SSD (~10-12 USD/tháng)
  • Worker Node 2: 2 vCPU, 2GB RAM, 40GB SSD (~10-12 USD/tháng)

Tổng chi phí ước tính: 32-39 USD/tháng, vẫn còn dư ngân sách cho monitoring tools hoặc backup storage.

Chuẩn bị môi trường và yêu cầu hệ thống

Trước khi bắt đầu cài đặt Kubernetes, cần đảm bảo các VPS đáp ứng yêu cầu cơ bản:

Hệ điều hành

Khuyến nghị sử dụng Ubuntu 22.04 LTS hoặc Debian 11 cho tính ổn định và compatibility tốt với Kubernetes. CentOS/Rocky Linux cũng là lựa chọn tốt nếu bạn quen thuộc với hệ sinh thái Red Hat.

Yêu cầu network

  • Tất cả nodes phải có khả năng giao tiếp với nhau qua private network
  • Mở các ports cần thiết: 6443 (API server), 2379-2380 (etcd), 10250-10252 (kubelet, scheduler, controller)
  • Cấu hình firewall rules phù hợp để bảo mật cluster

Disable swap và load kernel modules

Kubernetes yêu cầu swap phải được tắt hoàn toàn. Thực hiện trên tất cả nodes:

sudo swapoff -a và comment dòng swap trong /etc/fstab. Đồng thời, load các kernel modules cần thiết như overlay và br_netfilter để container networking hoạt động chính xác.

Cài đặt Kubernetes với kubeadm

Kubeadm là công cụ chính thức để bootstrap Kubernetes cluster, phù hợp cho production environment và dễ dàng nâng cấp.

Bước 1: Cài đặt container runtime

Kubernetes cần một container runtime để chạy containers. containerd là lựa chọn được khuyến nghị nhờ tính nhẹ và hiệu suất cao. Cài đặt containerd và cấu hình systemd cgroup driver để tương thích với kubelet.

Bước 2: Cài đặt kubeadm, kubelet và kubectl

Thêm Kubernetes apt repository và cài đặt các components phiên bản mới nhất (hiện tại là 1.29.x). Đảm bảo version consistency giữa tất cả các nodes để tránh compatibility issues.

Bước 3: Initialize control plane

Trên control plane node, chạy lệnh kubeadm init với các parameters phù hợp:

  • Chỉ định pod network CIDR (ví dụ: 10.244.0.0/16 cho Flannel)
  • Sử dụng private IP của node làm API server advertise address
  • Cấu hình control plane endpoint nếu dự định setup HA cluster sau này

Sau khi init thành công, lưu lại join command để thêm worker nodes vào cluster.

Bước 4: Cài đặt Pod Network Add-on

Cluster cần một network plugin để pods có thể giao tiếp với nhau. Các lựa chọn phổ biến:

  • Flannel: Đơn giản, nhẹ, phù hợp cho cluster nhỏ
  • Calico: Mạnh mẽ hơn, hỗ trợ network policies, phù hợp cho production
  • Cilium: Hiện đại, sử dụng eBPF, hiệu năng cao nhưng yêu cầu kernel mới

Với budget constraints, Flannel là lựa chọn tối ưu về tài nguyên.

Bước 5: Join worker nodes

Trên mỗi worker node, chạy join command đã lưu từ bước 3. Verify cluster status bằng kubectl get nodes - tất cả nodes nên ở trạng thái Ready sau vài phút.

Tối ưu hóa và bảo mật cluster

Resource management

Với tài nguyên hạn chế, việc quản lý resources là then chốt:

  • Đặt resource requests và limits cho tất cả workloads
  • Sử dụng LimitRanges để enforce default values
  • Cấu hình PriorityClasses để đảm bảo critical workloads được ưu tiên
  • Enable vertical pod autoscaling để tối ưu resource allocation

Security best practices

  1. RBAC: Cấu hình Role-Based Access Control chặt chẽ, tránh sử dụng cluster-admin role không cần thiết
  2. Network Policies: Implement network segmentation giữa các namespaces
  3. Pod Security Standards: Enforce restricted pod security standards để giảm attack surface
  4. Secrets management: Sử dụng external secrets operator hoặc sealed secrets thay vì plain Kubernetes secrets
  5. Regular updates: Lên kế hoạch update Kubernetes và system packages định kỳ

Monitoring và logging

Với budget hạn chế, sử dụng các giải pháp open-source:

  • Metrics Server: Lightweight metrics collection cho HPA và kubectl top
  • Prometheus + Grafana: Stack monitoring mạnh mẽ, có thể chạy với resource footprint nhỏ
  • Loki: Log aggregation nhẹ hơn ELK stack, tích hợp tốt với Grafana

Deployment thực tế và best practices

Sử dụng Helm cho package management

Helm giúp đơn giản hóa việc deploy và quản lý applications. Tạo custom charts cho applications của bạn hoặc sử dụng public charts từ Artifact Hub. Implement GitOps workflow với ArgoCD hoặc Flux để tự động hóa deployments.

Persistent storage

Cấu hình local-path-provisioner hoặc NFS provisioner cho persistent volumes. Với VPS, local storage thường đủ nhanh và reliable cho hầu hết use cases. Nhớ setup backup strategy cho critical data.

Ingress controller

Deploy Nginx Ingress Controller hoặc Traefik để expose services ra ngoài. Cấu hình SSL/TLS với cert-manager và Let's Encrypt cho HTTPS tự động.

Chi phí và scaling considerations

Cluster 3-node với cấu hình đề xuất có thể handle:

  • 10-20 microservices với moderate traffic
  • Development và staging environments cho team nhỏ
  • Production workloads với traffic dưới 100 requests/second

Khi cần scale, bạn có thể:

  • Thêm worker nodes theo chiều ngang (horizontal scaling)
  • Upgrade VPS specs (vertical scaling)
  • Implement cluster autoscaling với cloud provider APIs
  • Migrate sang managed Kubernetes khi budget cho phép

Kết luận

Triển khai Kubernetes trên VPS với budget dưới 50 USD/tháng hoàn toàn khả thi và mang lại giá trị lớn cho việc học tập cũng như chạy production workloads quy mô nhỏ. Mặc dù yêu cầu effort cao hơn managed services, bạn sẽ có kiểm soát hoàn toàn, hiểu biết sâu sắc về Kubernetes, và chi phí dự đoán được.

Hãy bắt đầu với setup đơn giản, monitor performance thường xuyên, và dần dần tối ưu hóa dựa trên actual usage patterns. Kubernetes trên VPS là bước đệm tuyệt vời trước khi scale lên enterprise solutions, đồng thời là nền tảng vững chắc cho DevOps journey của bạn.