Hướng Dẫn Tận Dụng Oracle Cloud Free Tier Xây Dựng Cụm K3s Kubernetes Cluster Hoàn Toàn Miễn Phí Và Ổn Định
Giới thiệu xu hướng Cloud-Native và bài toán chi phí
Trong kỷ nguyên Cloud-Native, Kubernetes (K8s) đã trở thành một tiêu chuẩn công nghiệp không thể thay thế cho việc quản lý và vận hành các ứng dụng container hóa. Tuy nhiên, một trong những rào cản lớn nhất đối với các kỹ sư phần mềm, các doanh nghiệp khởi nghiệp (startups) hoặc các đội ngũ phát triển nhỏ chính là chi phí duy trì hạ tầng hạ tầng Cloud vô cùng đắt đỏ từ các nhà cung cấp lớn như AWS, Google Cloud hay Microsoft Azure.
Để giải quyết bài toán này mà vẫn đảm bảo tính thực tiễn và hiệu năng ổn định, việc kết hợp giữa chương trình Oracle Cloud Free Tier và K3s (phiên bản Kubernetes rút gọn) là một giải pháp kiến trúc tối ưu, mang lại hiệu quả kinh tế tuyệt vời nhưng sở hữu sức mạnh không thua kém các môi trường thương mại.
Tại sao chọn Oracle Cloud Free Tier và K3s?
Sức mạnh phần cứng vượt trội từ Oracle Cloud Infrastructure (OCI)
Khác với các chương trình Free Tier thông thường chỉ cung cấp cấu hình siêu nhỏ (1 vCPU, 1GB RAM) và giới hạn thời gian sử dụng, Oracle Cloud Free Tier mang lại ưu đãi "Always Free" cực kỳ hào phóng với kiến trúc ARM:
- Cấu hình Ampere A1 Compute: Người dùng có thể sở hữu lên đến 4 vCPU và 24 GB RAM. Bạn có thể cấu hình linh hoạt thành 1 VM lớn hoặc chia nhỏ thành cụm 2 đến 3 VM để làm các Node cho Kubernetes.
- Dung lượng lưu trữ (Block Storage): Lên đến 200 GB lưu trữ Boot Volume tốc độ cao.
- Băng thông mạng: Lượng dữ liệu truyền tải (Egress) miễn phí lên tới 10 TB mỗi tháng, quá đủ cho các ứng dụng vừa và nhỏ.
K3s - Giải pháp Kubernetes tối giản, hiệu năng cao
Được phát triển bởi Rancher (nay thuộc SUSE), K3s là một bản phân phối Kubernetes được chứng nhận bởi CNCF nhưng được tinh giản tối đa. K3s loại bỏ các driver không cần thiết, thay thế etcd bằng SQLite (hoặc hỗ trợ etcd ngoại vi), giúp giảm RAM tiêu thụ xuống chỉ còn dưới 512MB cho mỗi Node. Điều này biến K3s thành ứng cử viên hoàn hảo để chạy trên các máy ảo ARM của Oracle Cloud.
Kiến trúc cụm K3s Cluster tối ưu trên OCI
Để xây dựng một cụm cluster có tính thực tiễn cao, chúng ta sẽ phân bổ tài nguyên 4 vCPU và 24GB RAM thành mô hình 3 Nodes như sau:
- 1 Control Plane Node (Master Node): Cấu hình 2 vCPU, 12GB RAM, 80GB Disk. Nhiệm vụ quản lý toàn cụm, điều phối và chạy Control Plane của K3s.
- 2 Worker Nodes (Agent Nodes): Mỗi node cấu hình 1 vCPU, 6GB RAM, 60GB Disk. Nhiệm vụ vận hành các Pods ứng dụng thực tế.
Kiến trúc phân rã này giúp giả lập chính xác môi trường Production thực tế, cho phép thử nghiệm cơ chế Load Balancing, mạng nội bộ (CNI) và phân phối tải giữa các Node một cách trực quan nhất.
Hướng dẫn từng bước triển khai chi tiết
Bước 1: Khởi tạo tài nguyên máy ảo (Instances) trên OCI
Sau khi đăng ký thành công tài khoản Oracle Cloud, bạn tiến hành truy cập phân hệ Compute để tạo các máy ảo.
Lưu ý quan trọng khi cấu hình:
- Hệ điều hành: Chọn Ubuntu 22.04 LTS Minimal hoặc Oracle Linux để đảm bảo tính tương thích và tiết kiệm dung lượng đĩa tối đa.
- Shape: Chọn
VM.Standard.A1.Flex(Ampere ARM), sau đó tùy chỉnh số OCPU và RAM tương ứng cho từng Node như kiến trúc đã định sẵn. - Network: Đặt tất cả các VM chung một mạng ảo (VCN) và Subnet để chúng có thể truyền thông nội bộ với nhau qua IP Private.
Bước 2: Cấu hình Security List (Firewall) trên Cloud và OS
Mặc dù hệ thống mạng của OCI rất bảo mật, nhưng để cụm K3s hoạt động, bạn cần mở các cổng giao tiếp thiết yếu tại phần Ingress Rules của Security List:
- Cổng
6443: Dành cho Kubernetes API Server (chỉ mở cho IP của bạn hoặc nội bộ hệ thống). - Cổng
10250: Kubelet API cho việc quản lý Node. - Cổng
2379-2380: Nếu bạn có ý định mở rộng sang cụm etcd HA sau này. - Cổng
8472(UDP): Cần thiết cho Flannel VXLAN overlay network giao tiếp giữa các Node.
Đồng thời, trên hệ điều hành Ubuntu, hãy vô hiệu hóa iptables mặc định hoặc cấu hình ufw để tránh chặn lưu lượng mạng cục bộ của Kubernetes.
Bước 3: Cài đặt K3s Control Plane (Master Node)
Truy cập vào Master Node thông qua SSH và thực thi lệnh cài đặt K3s chính thức chỉ với một dòng script duy nhất:
curl -sfL https://get.k3s.io | sh -
Sau khi quá trình cài đặt hoàn tất, hệ thống tự động thiết lập một Systemd service. Bạn cần lấy Node Token để kết nối các Worker Node bằng lệnh:
sudo cat /var/lib/rancher/k3s/server/node-token
Bước 4: Kết nối các Worker Node vào cụm
SSH vào từng Worker Node, thực hiện lệnh cài đặt Agent, đi kèm với thông tin IP Private của Master Node và Token vừa lấy ở bước trên:
curl -sfL https://get.k3s.io | K3S_URL=https://
Quay trở lại Master Node, kiểm tra trạng thái cụm bằng lệnh kubectl get nodes. Nếu tất cả các node hiển thị trạng thái Ready, chúc mừng bạn đã sở hữu một cụm Kubernetes hoàn chỉnh hoàn toàn miễn phí!
Giải pháp đảm bảo tính ổn định lâu dài cho cụm Cluster
Môi trường Free Tier của Oracle đôi khi đối mặt với tình trạng thu hồi tài nguyên nếu máy ảo bị gắn nhãn nhàn rỗi (Idle). Để cụm K3s hoạt động bền bỉ, bạn cần lưu ý:
- Duy trì tải tối thiểu: Đảm bảo cụm luôn chạy một số dịch vụ cơ bản như Prometheus/Grafana để giám sát, giúp lượng CPU và RAM sử dụng luôn vượt mức 15%, tránh thuật toán quét Idle VM của Oracle.
- Sao lưu dữ liệu định kỳ: Sử dụng công cụ như Velero kết hợp với Oracle Object Storage (cũng có dung lượng miễn phí 20GB) để backup định kỳ trạng thái của K3s và các Volume dữ liệu.
- Sử dụng Klipper Load Balancer: Tận dụng bộ cân bằng tải tích hợp sẵn của K3s để hướng lưu lượng từ cổng 80/443 vào các Pod ứng dụng thông qua cơ chế Ingress Controller (Traefik mặc định).
Kết luận
Xây dựng cụm K3s Kubernetes trên Oracle Cloud Free Tier không chỉ là một bài thực hành kiến trúc hệ thống tuyệt vời, mà còn là một giải pháp hạ tầng production thu nhỏ vô cùng đáng tin cậy cho các dự án cá nhân, môi trường CI/CD staging hay các ứng dụng SaaS ban đầu. Sự kết hợp thông minh này giúp tối ưu hóa ngân sách công nghệ về con số 0, cho phép bạn tập trung hoàn toàn vào việc tối ưu mã nguồn và quy trình triển khai ứng dụng hiện đại.
