Quay trở lại khi Kubernetes công bố tính năng Statefulset mới với K8s v1.5 (chuyển đổi nó từ PetSet
tên cũ ), họ đã đưa ra một bài đăng blog thực sự tốt thông qua một ví dụ về cách sử dụng của nó: https://kubernetes.io/blog/2016/ 12 / statefulset-run-scale-stateful-application-in-kubernetes /
Đoạn đầu tiên có một mô tả thực sự tốt về các tính năng khác biệt luôn bị mắc kẹt trong tâm trí của tôi:
... Nhiều nhất một nhóm trên mỗi chỉ số, để triển khai các Pods trong tập hợp. Cùng với việc triển khai theo thứ tự, chấm dứt theo thứ tự, tên mạng duy nhất và lưu trữ ổn định liên tục ...
Chia nhỏ những điều quan trọng:
Tên mạng duy nhất
Trong một triển khai, tên mạng không quan trọng vì bất kỳ nhóm nào cũng có thể nhận công việc. Tuy nhiên, khi bạn đang vận hành mọi thứ như một cụm nhà nước, bạn có thể có khái niệm 'chủ nhân' và 'nô lệ'. Việc đặt tên mạng duy nhất này sẽ cho phép bạn giữ sự khác biệt bằng cách tham chiếu một nhóm cụ thể , với tên gia tăng có thể dự đoán được.
Lệnh chấm dứt
Điều này rất quan trọng đối với việc triển khai lại trong một cụm trạng thái vì bạn có thể có các máy quan trọng cần ở lại lâu hơn. Nếu bạn có các nút điều phối viên hoặc 'người lãnh đạo', thì đó là những nút cuối cùng được khởi động lại. StatefulSets cho phép bạn làm điều này. Các bài đăng blog được liên kết thậm chí cho thấy một ví dụ về điều này.
Lưu trữ ổn định liên tục
Có thể cho rằng, đây là sự khác biệt quan trọng nhất . Theo mặc định, StatefulSets giữ lại bộ nhớ của họ. Kubernetes không tự động xóa bộ nhớ được gắn vào Statefulset. Điều tương tự có thể đạt được với việc triển khai, nhưng nó không phải là mặc định.