k3s, Minikube, MicroK8s, Rancher Desktop: chọn tool nào lab Kubernetes?

Kubernetes thì với các sếp làm DevOps rất quen thuộc rồi.

Bài này dành riêng cho những bạn mới là Dev, Sysadm, DBA,… Những ai đang tìm hiểu nên cài đặt tool nào để học và làm kubernetes. Tool nào sát với thực tế? Tool nào ăn ít tài nguyên? Vì không phải ai cũng có sẵn tài nguyên để học. Và tool nào đơn giản dễ dùng để tập trung vào việc lab nhất? Cùng với một vài tình huống mà newbie cũng hay gặp.

a220a0d0-7fe4-4d47-8d78-4fb6c4e33b13

Mình chia sẻ góc nhìn của mình về 4 tool phổ biến nhất để làm lab cho người mới: k3s, Minikube, MicroK8s, Rancher Desktop. Mong là giúp cho các bạn mới hiểu rõ hơn sẽ có những lựa chọn dễ dàng hơn.

Khoan đã, trả lời nhanh 3 câu này trước khi chọn tool

Anh em trớ vội lao thẳng ngay vào chọn tools ngay theo các blog hay các tutorial đang hướng dẫn trên mạng, mà hãy trả lời 3 câu này trước xem có phù hợp không? Trả lời xong là biết mình đang cần gì:

  1. Hệ điều hành: Anh em đang xài Windows, macOS hay Linux?
  2. Cấu hình: Máy anh em yếu hay khỏe? RAM đang 8GB hay 16G?
  3. Nhu cầu lab: Anh em đang hướng theo tutorial khóa học hay muốn lab giống chạy server thật?

Mục tiêu: Trong những phút đầu tiên, anh em phải Deploy được app, expose được port và nhìn thấy Log. Có thế mới sướng, mới muốn học tiếp!

Review nhanh 4 tools

Để cho dễ hình dung, mình sẽ phân tích từng tools theo kiểu điểm ăn tiền và điểm chưa tốt để mọi người dễ dàng lựa chọn tools phù hợp nhé

Rancher Desktop

Anh em xài Windows hoặc MacOS, tools này đúng nghĩa là mì ăn liền luôn.

  • Điểm cộng: Nó cài cực lẹ, nó tự lo hết phần driver và network, anh em đỡ phải lúng túng.
  • Điểm trừ: Cũng chính vì nó là tools mì ăn liền chạy lâu thì nó cũng ngốn RAM kha khá đấy.

Minikube

Minikube là con hàng quốc dân chuẩn sách giáo khoa, rất phổ biến luôn rồi.

  • Điểm cộng: Gần như tutorial lab nào cũng dùng, học theo cực dễ. Lỗi gì copy paste lên AI là dễ dàng được giải đáp.
  • Điểm trừ: Khởi động hơi chậm, thi thoảng trên Windows hay dở chứng cái driver ảo hóa.

MicroK8s

Chân ái cho anh em dùng Ubuntu, trùm về Addon.

  • Điểm cộng: Cần Ingress, Metrics? Gõ 1 lệnh là có ngay, đỡ công cấu hình thủ công (học lên trên rất tiện).
  • Điểm trừ: Tiện thì tiện thật nhưng bật nhiều addon là RAM nhảy số chóng mặt, máy yếu lag ngay.

k3s

Chuẩn bài thực chiến cho anh em dùng Linux VM, thậm trí có những công ty dùng cho môi trường production mình đã gặp rồi (nhưng với dự án lớn thì K8s vẫn là tiêu chuẩn rồi).

  • Điểm cộng: Siêu nhẹ, chạy mượt như service hệ thống. Restart máy xong tự lên lại rất êm.
  • Điểm trừ: Không có sẵn mọi thứ “tận răng” như MicroK8s. Mấy món Ingress/Metrics phải tự tay cài, mới đầu làm quen sẽ hơi ngợp.

So sánh tài nguyên khi idle và khi chạy bài lab cơ bản

Đây là phần hơi mất công và mình đã làm thay mọi người rồi, và mình khá là thích mấy phần giúp anh em tiết kiệm thời gian này còn anh em có thể tự làm và kết quả con số sẽ khác vì tùy apps/resources nhưng xu hướng nó sẽ như vậy. Và nếu máy anh em 16GB – 32GB thì không nói, chứ máy 8GB (chắc giờ cũng ít) mà chọn sai tool là xác định vừa code vừa lag, lab rất cọc :))

Mình đo ở 2 trạng thái sau:

  • Idle: Cluster khởi động xong, để yên ổn định trong 10 phút, chưa chạy workload nào.
  • Chạy Lab cơ bản: Cluster đã bật đủ đồ chơi gồm: 1 Ingress Controller, Metrics-server, 1 App Demo (Nginx) và 1 PVC (Storage).
Tool Idle Lúc chạy Lab Nhận xét độ ăn RAM
k3s 0.6 – 1.0 GB 1.8 – 2.8 GB Nhẹ nhất. Lựa chọn số 1 cho máy từ 8GB RAM (cũng hơi ngạc nhiên vì con này tiệm cận production nhất).
MicroK8s 1.2 – 2.0 GB 2.5 – 4.0 GB Vừa phải. Nhưng lưu ý bật nhiều addon quá thì RAM tăng rất nhanh.
Minikube 1.8 – 3.0 GB 3.0 – 5.0 GB Nặng đô. Cần cấu hình máy dư dả một chút tầm từ 16GB để chạy mượt.
Rancher Desktop 1.5 – 2.5 GB 3.0 – 5.0 GB Nặng đô. Tương đương Minikube, cần máy khỏe mới mượt.

Cân nhắc một số tình huống newbie vấp phải

Phần trên là số liệu và có thể mọi người đã lựa chọn được tool cho bản thân để lab rồi. Nếu chưa thì tiếp theo thì mình cũng chia sẻ thêm một chút phần cũng khá quan trọng là những tình huống mà anh em newbie sẽ hay gặp, và câu trả lời của các tools trên.

1. Vấn đề Ingress: Tại sao không vào được App bằng tên miền?

  • Minikube & MicroK8s: Dễ nhất. Minikube thì tutorial rất nhiều, còn MicroK8s enable cái addon Ingress lên là xong.
  • k3s: Hơi rối, nó có nhiều lựa chọn nên anh em newbie thường phân vân không biết chọn Controller nào (Traefik hay Nginx).
  • Rancher Desktop: Vẫn làm được nhưng anh em sẽ phải quen với cách nó expose port trên desktop.

Mẹo nhỏ: Nếu anh em anh em bắt đằu tiếp xúc với Ingress, nên dùng MicroK8s hoặc Minikube cho dễ.

2. Vấn đề Metrics & HPA: Sao gõ lệnh top mà không ra biểu đồ?

  • MicroK8s: Trùm khoản này. Cần Metrics? Bật addon một phát là biểu đồ hiện lên ngay.
  • Minikube: Được luôn có addon hỗ trợ tận răng.
  • k3s: Phức tạp, anh em thường phải cài thêm metrics-server theo cách thủ công.
  • Rancher Desktop Dùng tạm ổn nhưng đôi khi số liệu bị lệch do môi trường ảo hóa.

Mẹo nhỏ: Muốn học Auto Scale nhanh gọn, MicroK8s là chân ái.

3.Vấn đề PVC Pending: Tạo disk lưu dữ liệu mà nó cứ treo mãi

  • MicroK8s & Minikube: Cả hai tools cấp phát sẵn disk rồi. Cứ làm đúng theo bài là chạy.
  • k3s: Cũng làm được nhanh, nhưng newbie cần hướng dẫn rõ storage class nào, provisioner nào.
  • Rancher Desktop Tùy vào backend bên dưới, newbie thường không hiểu nó map ổ cứng từ máy thật vào container kiểu gì.

Mẹo nhỏ: nếu anh em bắt đầu lưu trữ dữ liệu, stateful thì MicroK8s và Minikube thường ít vướng lỗi nhất.

4. Vấn đề Restart: Tắt máy xong lab lại, Cluster đâu rồi?

  • k3s: Trên Linux VM chạy như service, restart thường lên lại rất mượt.
  • MicroK8s: Cũng rất ổn định sau khi khởi động lại.
  • Minikube: Hên xui tùy driver, có lúc anh em phải start lại đúng context.
  • Rancher Desktop: Thường thì ổn, nhưng update hoặc đổi runtime đôi lúc gây lệch.

Mẹo nhỏ: Nếu anh em học kiểu mỗi ngày mở máy một lần, k3s và MicroK8s cho cảm giác an toàn nhé.

Chốt lại một tóm tắt nhanh nữa tool nào hợp để học phần nào

Mục tiêu Tôi ưu tiên tool
Học nhanh, ít vấp trên laptop Rancher Desktop
Học theo tutorial, khóa học Minikube
Học Ingress, HPA, PVC nhanh trên Ubuntu MicroK8s
Học theo kiểu server thật, lab nhẹ bền k3s

Lưu ý nhỏ nữa: nếu là phục vụ học tập để “hiểu cách dùng” thì cũng không nên mất nhiều thời gian để dựng lab. Mọi người chỉ cần tool để deploy được app và học. Khi đã hiểu Kubernetes rồi, lúc đó anh em đổi tool, đổi cách dựng cluster sẽ mượt hơn. Còn chắc chắn là có những bạn sẽ hướng ngay đến sự “chuyên nghiệp” và “thống nhất” ban đầu cái này thì tùy lựa chọn mỗi người nhé, mình cũng đã nói khá rõ ràng trong khả năng của mình, good luck!

Thông tin nổi bật

Sự kiện phát trực tiếp​

Event Thumbnail

Báo cáo quan trọng

Article Thumbnail
Article Thumbnail
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Tiêu điểm chuyên gia