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

Hướng Dẫn Thiết Lập Kube-ops-view Kết Hợp K3s Trên VPS: Trực Quan Hóa Hệ Thống Container Theo Thời Gian Thực

30 tháng 5, 2026

Giới thiệu xu hướng quản trị Kubernetes tinh gọn trên VPS

Trong kỷ nguyên điện toán đám mây và kiến trúc microservices, việc vận hành các ứng dụng dưới dạng Docker container đã trở thành tiêu chuẩn công nghiệp. Tuy nhiên, khi số lượng container tăng lên, việc giám sát trạng thái sức khỏe, phân bổ tài nguyên và sự phân bố của các Pod trong cụm (cluster) trở thành một thách thức lớn đối với các kỹ sư hệ thống và kiến trúc sư giải pháp.

Đối với các doanh nghiệp nhỏ và vừa (SMEs), việc thuê các dịch vụ Managed Kubernetes (như GKE, EKS, AKS) thường đi kèm với chi phí cấu hình và duy trì rất lớn. Do đó, giải pháp triển khai một cụm Kubernetes tinh gọn như K3s trên các máy chủ ảo cá nhân (VPS) đang trở thành xu hướng tối ưu. Để giải quyết bài toán giám sát trực quan mà không làm tiêu tốn tài nguyên hệ thống, Kube-ops-view xuất hiện như một công cụ hỗ trợ đắc lực, cung cấp giao diện đồ họa theo thời gian thực vô cùng trực quan và mượt mà.

K3s và Kube-ops-view là gì? Tại sao đây là sự kết hợp hoàn hảo?

K3s - Phiên bản Kubernetes tối giản cho mọi môi trường

K3s là một bản phân phối Kubernetes được phát triển bởi Rancher Labs, được chứng nhận bởi CNCF (Cloud Native Computing Foundation). K3s được thiết kế đặc biệt cho các môi trường có tài nguyên hạn chế như Edge Computing, IoT, và đặc biệt là các dòng VPS cấu hình thấp. Bằng cách loại bỏ các driver không cần thiết, tích hợp sẵn các thành phần cốt lõi như SQLite (thay vì etcd mặc định), K3s giảm thiểu dung lượng RAM tiêu thụ xuống chỉ còn dưới 512MB, khiến nó trở nên cực kỳ linh hoạt nhưng vẫn giữ nguyên vẹn API chuẩn của Kubernetes.

Kube-ops-view - Trực quan hóa cấu trúc liên kết Cluster trực quan

Không giống như các hệ thống giám sát nặng nề thu thập số liệu (metrics) như Prometheus kết hợp Grafana, Kube-ops-view tập trung vào việc hiển thị cấu trúc liên kết mạng và trạng thái động của các Node và Pod. Công cụ này render toàn bộ cluster dưới dạng các khối hình học mã hóa màu sắc trên giao diện web HTML5. Bạn có thể theo dõi ngay lập tức khi nào một Pod đang khởi tạo (Pending), đang chạy (Running), gặp lỗi (CrashLoopBackOff), hoặc khi một Node bị quá tải tài nguyên CPU/RAM.

Sự kết hợp giữa K3s và Kube-ops-view tạo nên một hệ sinh thái quản trị DevOps đỉnh cao trên VPS: vừa đảm bảo hiệu năng vận hành ứng dụng cao, vừa tiết kiệm chi phí phần cứng, lại vừa mang lại khả năng quan sát (observability) tức thời.

Quy trình chuẩn bị hệ thống trước khi cài đặt

Để đảm bảo quá trình thiết lập diễn ra suôn sẻ, bạn cần chuẩn bị một môi trường VPS đáp ứng các tiêu chí kỹ thuật cơ bản sau:

  • Hệ điều hành: Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS sạch (chưa cài các dịch vụ xung đột Web Server).
  • Cấu hình tối thiểu: 2 vCPU, 2GB RAM (Mặc dù K3s chạy được ở 1GB RAM, nhưng để vận hành ổn định cùng các container ứng dụng, 2GB là mức khuyến nghị).
  • Mạng: Có địa chỉ IP công cộng (Public IP) và quyền truy cập SSH với đặc quyền root hoặc sudo.
  • Bảo mật: Mở các cổng mạng cần thiết trên Firewall của VPS bao gồm: 6443 (Kubernetes API server), 80 (HTTP), 443 (HTTPS).

Hướng dẫn chi tiết các bước thiết lập K3s kết hợp Kube-ops-view

Bước 1: Triển khai K3s Cluster trên VPS

Trước tiên, chúng ta tiến hành cài đặt K3s bằng script tự động chính thức từ Rancher. Truy cập vào VPS qua SSH và chạy câu lệnh sau:

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

Script này sẽ tự động tải xuống các file thực thi, cấu hình systemd service và thiết lập các thành phần mạng cơ bản bao gồm Flannel CNI, CoreDNS, Traefik Ingress Controller và Local-Storage Provider. Sau khi quá trình cài đặt hoàn tất (thường mất chưa đầy 1 phút), bạn kiểm tra trạng thái hoạt động của Node bằng lệnh:

sudo k3s kubectl get nodes

Hệ thống sẽ trả về trạng thái Ready cho node VPS của bạn. Để tiện cho việc quản lý không cần gõ kèm sudo k3s, hãy cấu hình phân quyền file kubeconfig:

mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
export KUBECONFIG=~/.kube/config

Bước 2: Cấu hình phân quyền RBAC cho Kube-ops-view

Kube-ops-view cần kết nối tới Kubernetes API Server để thu thập thông tin về trạng thái của các Node và Pod. Do đó, chúng ta cần khởi tạo một ServiceAccount đính kèm ClusterRole tương ứng thông qua cơ chế RBAC (Role-Based Access Control). Hãy tạo một file cấu hình mang tên kube-ops-view-rbac.yaml với nội dung sau:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-ops-view
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kube-ops-view
subjects:
  - kind: ServiceAccount
    name: kube-ops-view
    namespace: kube-system
roleRef:
  kind: ClusterRole
  name: view
  apiGroup: rbac.authorization.k8s.io

Áp dụng file cấu hình vừa tạo vào cụm K3s:

kubectl apply -f kube-ops-view-rbac.yaml

Bước 3: Triển khai Kube-ops-view Deployment và Service

Tiếp theo, chúng ta tiến hành khởi tạo một Deployment để chạy image của Kube-ops-view và một Service để điều hướng lưu lượng. Tạo file kube-ops-view-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-ops-view
  namespace: kube-system
  labels:
    application: kube-ops-view
spec:
  replicas: 1
  selector:
    matchLabels:
      application: kube-ops-view
  template:
    metadata:
      labels:
        application: kube-ops-view
    spec:
      serviceAccountName: kube-ops-view
      containers:
        - name: kube-ops-view
          image: hjacobs/kube-ops-view:20.4.0
          ports:
            - containerPort: 8080
          env:
            - name: CLUSTER_NAME
              value: "K3s-VPS-Cluster"
---
apiVersion: v1
kind: Service
metadata:
  name: kube-ops-view
  namespace: kube-system
  labels:
    application: kube-ops-view
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
  selector:
    application: kube-ops-view

Thực hiện triển khai tài nguyên lên hệ thống bằng lệnh:

kubectl apply -f kube-ops-view-deployment.yaml

Bước 4: Cấu hình Traefik Ingress để public giao diện ra ngoài Internet

Mặc định K3s đã tích hợp sẵn Traefik Ingress Controller. Để có thể truy cập vào giao diện đồ họa của Kube-ops-view từ trình duyệt máy tính cá nhân thông qua tên miền hoặc IP công cộng của VPS, bạn cần khai báo một Ingress Route. Hãy tạo file kube-ops-view-ingress.yaml (thay đổi phần host thành IP VPS hoặc domain của bạn):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kube-ops-view-ingress
  namespace: kube-system
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kube-ops-view
                port:
                  number: 80

Kích hoạt cấu hình Ingress:

kubectl apply -f kube-ops-view-ingress.yaml

Trải nghiệm và diễn giải các thành phần giao diện thời gian thực

Giờ đây, bạn mở trình duyệt web bất kỳ và nhập vào địa chỉ IP công cộng của VPS (hoặc domain đã cấu hình). Giao diện trực quan huyền ảo của Kube-ops-view sẽ hiện ra trước mắt bạn.

Tại đây, mỗi cấu trúc lớn dạng hình chữ nhật đại diện cho một Node vật lý (hoặc ảo hóa VPS) trong cụm. Bên trong mỗi Node, các ô vuông nhỏ di động đại diện cho các Pod (chứa Docker Container) đang vận hành. Màu sắc của các ô vuông này mang ý nghĩa cực kỳ quan trọng:

  1. Màu xanh lá cây (Green): Container đang hoạt động hoàn hảo, mượt mà và an toàn.
  2. Màu vàng/cam (Yellow/Orange): Pod đang trong trạng thái chờ thiết lập hoặc tài nguyên CPU/RAM chạm ngưỡng cảnh báo.
  3. Màu đỏ (Red): Pod gặp lỗi nghiêm trọng như CrashLoopBackOff hoặc ImagePullBackOff. Bạn cần can thiệp kiểm tra log ngay lập tức.

Khi bạn tiến hành scaling ứng dụng (ví dụ tăng số lượng replica của một web app từ 2 lên 10 bằng lệnh kubectl scale deployment...), bạn sẽ thấy các ô vuông mới xuất hiện và nhấp nháy chuyển từ vàng sang xanh theo thời gian thực một cách vô cùng sống động.

Lời kết và các khuyến nghị bảo mật

Hệ thống kết hợp giữa K3s và Kube-ops-view cung cấp giải pháp quản trị Kubernetes nhẹ nhàng, mượt mà và trực quan bậc nhất hiện nay trên môi trường VPS. Nó giúp các nhà phát triển thoát khỏi sự khô khan của các dòng lệnh terminal mà không làm ảnh hưởng đến hiệu năng của máy chủ.

Tuy nhiên, một lưu ý bảo mật tối quan trọng: Kube-ops-view mặc định không tích hợp cơ chế đăng nhập. Việc public giao diện này ra ngoài Internet bằng Ingress có thể khiến lộ cấu trúc hạ tầng hệ thống của bạn cho kẻ xấu. Vì vậy, trong môi trường thực tế (Production), bạn nên tích hợp thêm giải pháp Basic Authentication của Traefik hoặc thiết lập VPN/Oauth2 Proxy bảo vệ lớp Ingress này để bảo mật tuyệt đối dữ liệu doanh nghiệp.

Hướng Dẫn Thiết Lập Kube-ops-view Kết Hợp K3s Trên VPS: Trực Quan Hóa Hệ Thống Container Theo Thời Gian Thực | DPTCloud