StatefulSet
Sử dụng 'StatefulSet' với các Ứng dụng Phân tán Trạng thái , yêu cầu mỗi nút phải có trạng thái ổn định . StatefulSet cung cấp khả năng định cấu hình một số lượng nút tùy ý, cho một ứng dụng / thành phần trạng thái, thông qua một cấu hình (bản sao = N).
Có hai loại ứng dụng phân tán trạng thái: Master-Master và Master-Slave. Tất cả các nút trong cấu hình Master-Master và các nút Slave trong cấu hình Master-Slave có thể sử dụng StatefulSet.
Ví dụ:
Master-Slave -> Datanodes (nô lệ) trong một cụm Hadoop
Master-Master -> Các nút cơ sở dữ liệu (chính-chủ) trong một cụm Cassandra
Mỗi Pod (bản sao / nút) trong StatefulSet có danh tính mạng Duy nhất và Ổn định. Ví dụ: trong Cassandra StatefulSet có tên là 'cassandra' và số lượng nút bản sao là N, mỗi nhóm Cassandra (nút) có:
- Chỉ số thứ tự cho mỗi nhóm: 0,1, .., N-1
- Id mạng ổn định: cassandra-0, cassandra-1, .., cassandra-N-1
- Một khối lượng liên tục riêng biệt cho từng nhóm so với mẫu yêu cầu khối lượng tức là một bộ nhớ riêng cho mỗi nhóm (nút)
- Các nhóm được tạo theo thứ tự 0 đến N-1 và kết thúc theo thứ tự ngược lại N-1 đến 0
Tham khảo: https://kubernetes.io/docs/concept/workloads/controllers/statefulset/
Triển khai
Mặt khác, 'triển khai' phù hợp với các ứng dụng / dịch vụ không trạng thái mà các nút không yêu cầu bất kỳ danh tính đặc biệt nào. Bộ cân bằng tải có thể tiếp cận bất kỳ nút nào mà nó chọn. Tất cả các nút đều bằng nhau. Triển khai hữu ích để tạo bất kỳ số lượng nút tùy ý nào, thông qua cấu hình (bản sao = N).