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

Chạy Kubernetes trên VPS: Hướng dẫn triển khai K3s cho Developer và Startup

14 tháng 5, 2026

Giới thiệu về K3s và Kubernetes trên VPS

Trong thời đại cloud-native, Kubernetes đã trở thành tiêu chuẩn vàng cho container orchestration. Tuy nhiên, việc triển khai Kubernetes truyền thống đòi hỏi tài nguyên lớn và cấu hình phức tạp, không phù hợp với nhiều developer và startup có ngân sách hạn chế. Đây chính là lúc K3s xuất hiện như một giải pháp tối ưu.

K3s là phiên bản Kubernetes được Rancher Labs phát triển, được thiết kế để chạy trên các môi trường có tài nguyên hạn chế như VPS, edge devices, và IoT. Với dung lượng binary chỉ khoảng 70MB, K3s loại bỏ các thành phần không cần thiết nhưng vẫn giữ nguyên tính tương thích 100% với Kubernetes API.

Tại sao nên chọn K3s cho VPS?

Việc lựa chọn K3s để chạy trên VPS mang lại nhiều lợi ích thiết thực cho developer và startup:

  • Tiết kiệm tài nguyên: K3s chỉ cần tối thiểu 512MB RAM, phù hợp với các VPS entry-level
  • Cài đặt đơn giản: Quá trình cài đặt chỉ mất vài phút với một câu lệnh duy nhất
  • Chi phí thấp: Có thể chạy trên VPS giá rẻ từ $5-10/tháng thay vì phải sử dụng managed Kubernetes services đắt đỏ
  • Tương thích hoàn toàn: Hỗ trợ đầy đủ Kubernetes API, kubectl, và Helm charts
  • Bảo mật tích hợp: Đi kèm với các tính năng bảo mật như TLS certificates tự động
  • Phù hợp cho CI/CD: Dễ dàng tích hợp vào pipeline deployment tự động

Yêu cầu hệ thống và chuẩn bị

Trước khi bắt đầu cài đặt K3s trên VPS, bạn cần đảm bảo các yêu cầu sau:

Cấu hình VPS tối thiểu

  • CPU: 1 core (khuyến nghị 2 cores trở lên)
  • RAM: 1GB (khuyến nghị 2GB cho production)
  • Disk: 10GB trống (khuyến nghị 20GB)
  • OS: Ubuntu 20.04/22.04, Debian 10/11, CentOS 7/8, hoặc các distro Linux tương tự
  • Network: Public IP address và port 6443 mở cho Kubernetes API

Chuẩn bị môi trường

Đảm bảo VPS của bạn đã được cập nhật và cài đặt các công cụ cơ bản:

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git -y

Hướng dẫn cài đặt K3s từng bước

Bước 1: Cài đặt K3s Server

Cài đặt K3s trên VPS của bạn với một câu lệnh đơn giản:

curl -sfL https://get.k3s.io | sh -

Script này sẽ tự động tải xuống và cài đặt K3s, đồng thời cấu hình nó như một systemd service. Quá trình thường mất 30-60 giây.

Bước 2: Kiểm tra trạng thái cài đặt

Sau khi cài đặt hoàn tất, kiểm tra trạng thái của K3s service:

sudo systemctl status k3s

Kiểm tra các nodes trong cluster:

sudo k3s kubectl get nodes

Bước 3: Cấu hình kubectl

Để sử dụng kubectl mà không cần sudo, copy kubeconfig file:

mkdir ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
chmod 600 ~/.kube/config

Bây giờ bạn có thể sử dụng kubectl thay vì sudo k3s kubectl.

Triển khai ứng dụng đầu tiên trên K3s

Sau khi cài đặt thành công, hãy thử triển khai một ứng dụng đơn giản để kiểm tra cluster:

Deploy một web application

Tạo file deployment YAML cho một ứng dụng nginx:

kubectl create deployment nginx --image=nginx:latest
kubectl expose deployment nginx --port=80 --type=LoadBalancer

K3s đi kèm với Traefik làm ingress controller mặc định, giúp việc expose services ra ngoài internet trở nên đơn giản hơn.

Kiểm tra deployment

Xem trạng thái của pods và services:

kubectl get pods
kubectl get services

Tối ưu hóa K3s cho môi trường Production

1. Cấu hình Resource Limits

Luôn đặt resource requests và limits cho các pods để tránh tình trạng một ứng dụng chiếm hết tài nguyên:

Trong deployment manifest, thêm:

resources:
  requests:
    memory: "128Mi"
    cpu: "100m"
  limits:
    memory: "256Mi"
    cpu: "200m"

2. Thiết lập Persistent Storage

K3s sử dụng local-path-provisioner mặc định cho persistent volumes. Đối với production, nên cấu hình external storage hoặc sử dụng NFS:

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

3. Backup và Disaster Recovery

K3s lưu trữ dữ liệu trong SQLite database tại /var/lib/rancher/k3s/server/db/. Thiết lập backup tự động:

#!/bin/bash
BACKUP_DIR="/backup/k3s"
mkdir -p $BACKUP_DIR
sudo cp -r /var/lib/rancher/k3s/server/db/ $BACKUP_DIR/db-$(date +%Y%m%d-%H%M%S)

4. Monitoring và Logging

Cài đặt Prometheus và Grafana để giám sát cluster:

kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml

Best Practices cho Developer và Startup

Quản lý môi trường Development và Production

Sử dụng namespaces để tách biệt các môi trường:

kubectl create namespace development
kubectl create namespace staging
kubectl create namespace production

Sử dụng Helm Charts

Helm giúp quản lý các Kubernetes applications dễ dàng hơn. Cài đặt Helm:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

CI/CD Integration

Tích hợp K3s với GitLab CI, GitHub Actions, hoặc Jenkins để tự động hóa deployment. Sử dụng kubectl trong pipeline với kubeconfig được lưu trữ an toàn trong CI/CD secrets.

Security Hardening

  • Thường xuyên cập nhật K3s: curl -sfL https://get.k3s.io | sh -
  • Sử dụng Network Policies để kiểm soát traffic giữa các pods
  • Enable Pod Security Standards
  • Scan container images với tools như Trivy trước khi deploy
  • Sử dụng secrets management tools như Sealed Secrets hoặc External Secrets Operator

Troubleshooting các vấn đề thường gặp

K3s service không start

Kiểm tra logs: sudo journalctl -u k3s -f

Thường do port 6443 đã được sử dụng hoặc thiếu quyền truy cập.

Pods ở trạng thái Pending

Kiểm tra events: kubectl describe pod [pod-name]

Thường do thiếu tài nguyên hoặc vấn đề với persistent volume claims.

High memory usage

K3s sử dụng containerd thay vì Docker, tiết kiệm RAM hơn. Nếu vẫn gặp vấn đề, giảm số lượng pods hoặc nâng cấp VPS.

Kết luận

K3s là giải pháp lý tưởng cho developers và startups muốn tận dụng sức mạnh của Kubernetes mà không cần đầu tư lớn vào infrastructure. Với khả năng chạy trên VPS giá rẻ, cài đặt đơn giản, và tương thích hoàn toàn với Kubernetes ecosystem, K3s giúp bạn xây dựng môi trường production-ready một cách nhanh chóng và hiệu quả.

Bằng cách tuân thủ các best practices về resource management, security, monitoring, và backup, bạn có thể vận hành K3s cluster một cách ổn định và tin cậy. Đây là bước đệm hoàn hảo trước khi scale lên các managed Kubernetes services khi startup của bạn phát triển.

Hãy bắt đầu với một VPS nhỏ, triển khai K3s, và trải nghiệm sức mạnh của container orchestration ngay hôm nay!