Giải thích GKE free cluster

Hi Vtitans,
Mình đang ngồi tính toán chi phí tạo cluster thứ hai trên GKE và phát hiện cluster thứ nhất được miễn phí. Bài này mình ghi lại các thông tin về cái vụ miễn phí này nhé.

Phần nào của cost được miễn phí?

Google gọi nó là cluster management fee. Link đây: https://cloud.google.com/kubernetes-engine/pricing
Giả sử bạn tạo một cluster rỗng (không chạy node nào cả), cluster này bị charge 0.1$ / hour (72$ / month). Cố định không phụ thuộc size hay topology, trừ Anthos (chưa biết là cái chi).
Và phần này được áp dụng exemption (miễn phí).

Điều kiện áp dụng: One Zonal. Zonal vs Regional

Chỉ áp dụng cho zonal cluster. Không áp dụng cho regional. Một cluster là zonal hay regional được quyết định khi tạo và không thể thay đổi được nữa.

Có thể hiểu đơn giản như sau:
cluster = N control plane (máy thôi ấy mà) + M nodes
Control plane là một hoặc một số máy chạy Kubernetes API server và một số components khác, vẽ tại đây: https://kubernetes.io/docs/concepts/overview/components/
Trong trường hợp của GKE zonal, N = 1 (dù là single-zone hay multi-zonal).

One or first one? Project or organization?

One. Nghĩa là bạn tạo cluster đầu tiên => miễn phí. Xoá đi tạo mới => miễn phí.

But two. Loằng ngoằng hơn một chút, nếu mình có 2 zonal cluster, nhưng tính trong một tháng tổng thời gian sống của chúng nhỏ hơn 720 hours thì mình vẫn được miễn phí. Cái này mình suy luận từ trang pricing trên chứ chưa có kiểm chứng.

Organization. Nghĩa là một billing account tạo nhiều project và nhiều cluster thì chỉ có một cluster được miễn phí.

Và 2 tip để giảm chi phí khi thực hành.

Tạo zonal cluster bằng lệnh gcloud container

Nếu tạo từ console thì có thể hiện rõ ràng là mình đang tạo zonal hay regional. Nhưng với gcloud thì mất một chút thời gian để mình hiểu ra cách đảm bảo là mình đang tạo zonal.

Lệnh này tạo zonal: gcloud container clusters create --zone ...
Lệnh này tạo regional: gcloud container clusters create --region ...
Nếu bạn chỉ định cả 2 option --zone và --region, gcloud sẽ báo lỗi, yên tâm: At most one of --region | --zone may be specified

Kiểm soát số node

Default nếu không chỉ định gì thì lệnh create sẽ tạo 3 node đấy, và một số getting started guide không cảnh báo mình điều này, oạch.
Bạn có thể chỉ định --num-nodes trong lệnh create. Tuy nhiên không thể chỉ định bằng 0. Muốn số node bằng 0, bạn tạo xong rồi dùng lệnh resize nhé.
Ví dụ:

gcloud container clusters create hello-cluster --zone asia-northeast1-a --num-nodes 1
gcloud container clusters resize hello-cluster --zone asia-northeast1-a --node-pool default-pool --num-nodes 0

Chúc anh em không bị charge đau thương,
Thân, from Châu D9

Leave a Reply

Your email address will not be published. Required fields are marked *