Statefulset trong Kubernetes

Statefulset là gì?

Statefulset được sử dụng để quản trị một hoặc nhiều Pod.
Vậy tại sao lại cần Statefulset khi đã có ReplicateSet, Deployment?

Sự khác biệt giữa Statefulset và ReplicateSet

Ứng dụng dạng stateless:

Các ứng dụng stateless thường là các service dụng nginx, apache hoặc chạy dạng HTTP Request. Gọi là stateless app vì mỗi request tới nginx hoặc apache chúng sẽ độc lập với nhau.

  • Ví dụ: Gửi HTTP tới Backend API, mỗi API sẽ độc lập không ảnh hưởng tới các API khác.

Ứng dụng dạng stateful:

Các ứng dụng stateful thường là các service dạng database, điển hình nhất là mariadb, mysql.

  • Ví dụ: Các database như mariadb hoặc mysql sẽ gặp phải vấn đề chỉ có thể ghi trên 1 node và ghi trên nhiều node. Và các database dạng mysql, mariadb không thể scale hàng loạt bởi lý do cơ chế master slave, cơ chế ghi 1 đọc nhiều node ..

Qua đó, Deployment phù hợp hơn cho các ứng dụng dạng stateless, khi mà pod có thể sinh ra và mất đi linh hoạt. Statefulset sinh ra khi phải quản lý pod chặt chẽ, ví dụ triển khai cụm mariadb master slave 3 node trên k8s.

Vậy là chúng ta hiểu Statefulset trong Kubernetes là gì rồi. Chúc các bạn thành công.!

Bài viết liên quan

Leave a Reply

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