StatefulSet
Використовуйте "StatefulSet" з розподіленими програмами Stateful, які вимагають, щоб кожен вузол мав стійкий стан . StatefulSet надає можливість налаштувати довільну кількість вузлів для стану програми / компонента через конфігурацію (репліки = N).
Існує два види державних розподілених додатків: Master-Master і Master-Slave. Усі вузли в конфігурації Master-Master та Slave-вузли в конфігурації Master-Slave можуть використовувати StatefulSet.
Приклади:
Master-Slave -> Датаноди (раби) в кластері Hadoop
Master-Master -> Вузли бази даних (master-master) в кластері Cassandra
Кожен Pod (репліка / вузол) у StatefulSet має унікальну та стабільну мережеву ідентичність. Наприклад, у Cassandra StatefulSet з назвою "cassandra" та кількістю вузлів реплік як N, кожен стручок (вузол) Cassandra має:
- Порядковий індекс для кожного стручка: 0,1, .., N-1
- Стабільний ідентифікатор мережі: cassandra-0, cassandra-1, .., cassandra-N-1
- Окремий постійний том для кожного стручка проти шаблону претензії на об'єм, тобто окремий сховище для кожного стручка (вузла)
- Стручки створюються в порядку від 0 до N-1 і закінчуються в зворотному порядку N-1 до 0
Посилання: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
Розгортання
З іншого боку, "розгортання" підходить для додатків / служб без громадянства, де вузли не вимагають особливої ідентичності. Балансир навантаження може досягти будь-якого вузла, який він обрав. Усі вузли рівні. Розгортання корисно для створення будь-якої кількості довільних вузлів через конфігурацію (репліки = N).