Kubernetes (k8s) theo mình là một ứng dụng mạnh, cho phép deploy và quản lý các app của  mình theo kiểu container một cách hiệu quả và dễ dàng. Tuy nhiên có một thực tế là các nhà cung cấp các dịch vụ về cloud hiện tại offer dịch vụ k8s không hề rẻ, và khó tiếp cận cho những ai muốn tìm  và triển khai các ứng dụng mang tính chất "em yêu khoa học". Ví như nếu các bạn thuê dịch vụ của AWS thì bạn phải thanh toán 0.1$/1h hay 72$/tháng cho chi phí quản lý dịch vụ, giá này chưa bao gồm tiền thuê các resource khác như EC2, v.v...

Note! K8S đối với mình là một công cụ cần một team để có thể vận hành nó hiệu quả, nó ko thích hợp cho những dự án bé tí tẹo. Nên nó không hề rẻ là có lí do của nó!

Và để "em yêu khoa học" với kinh phí cho phép, mình có tìm hiểu thì nếu ta sử dụng dịch vụ của Google cloud thì chi phí sẽ được cải thiện đáng kể. Mình tham khảo ý tưởng từ trang blog bên dưới nhé (và có sửa chút chút). Bạn nào rảnh có thể vào xem luôn.

Affordable Kubernetes Cluster của https://devonblog.com

Bây giờ chúng ta hãy nghía qua môt chút về cách mình setup 1 cluster k8s với 2 cpus nhé trên nền tảng của Google Cloud nhé.

Giả sử mình cần setup 1 cluster 2 node (Node size: micro) thì chi phí 1 cluster như vậy trên Google Cloud vào khoản: 40$/tháng

Resource Giá
Kubernetes Nodes (VM) 10$ x 2
Cloud Load Balancer $20
Network, etc... 1$
~40$

Solution

  1. Google có môt loại VM gọi là "preemptible nodes" có giá chỉ bằng 50% so với 1 VM khác cùng cấu hình.
  2. Cloud Load Balancer thì rất khó để bỏ vì đây là thành phần bắt buộc nếu muốn setup HTTP ingress. Giải pháp của mình là sử dụng Cloudflare DNS để thay Google Load Balancer. (Bạn kia thì xài gán IP là một IP pool, mình thấy cái này khó xài vler, nên bỏ :D)
Kiến trúc cơ bản

Kết quả


Mình đã setup thành công và chi phí hang tháng khoản giảm giá còn 50%, (do mình xài VM size G1, mắc hơn). Nếu bạn hỏi kiểu này có stable không? Mình xin trả lời là không nhé..chắc chắn là không ngon như giải pháp của google rồi! Nhưng mình thấy cũng tạm được cho những việc "em yêu khoa học của mình".

Resource Giá
Kubernetes Nodes (VM) 5$ x 2
Cloud Load Balancer $0
Network, etc... 1$
~12$

Đây chỉ là bài giới thiệu cơ bản, và bài viết đầu tay của mình nên sẽ đọc khó hiểu, sẽ viết tiếp để chia sẽ về cái này nhé!