StatefulSet, ReplicaSet или DaemonSet. Что лучше для одного стручка?

Я хочу развернуть один Pod на узле для размещения моего сервиса (например, GitLab). Проблема в том, что Pod не будет воссоздан после сбоя узла (например, перезагрузка). Решение (ы): Используйте StatefulSet, ReplicaSet или DaemonSet, чтобы обеспечить создание Pod после сбоя узла. Но что лучше для этого случая?

Этот Pod с состоянием (я использую объем hostPath хранить данные) и развертывается с использованием nodeSelector держать его всегда на одном узле.

Вот простой файл YAML для примера: https://pastebin.com/WNDYTqSG

Это создает 3 стручка (один для каждого Set) с объемом, чтобы хранить данные в состоянии. На практике все эти решения могут удовлетворить мои потребности, но я не знаю, есть ли лучшие практики для этого случая.

Можете ли вы помочь мне выбрать между этими решениями для развертывания одного модуля с состоянием, пожалуйста?

1 ответ

Развертывание является наиболее распространенным вариантом управления модулем или набором модулей. Они обычно используются вместо ReplicaSets, поскольку они более гибкие и создают результаты развертывания в ReplicaSet - см. https://www.mirantis.com/blog/kubernetes-replication-controller-replica-set-and-deployments-understanding-replication-options/

Вам понадобится StatefulSet только в том случае, если у вас есть несколько модулей и требуется выделенное постоянство для каждого модуля, или если у вас было несколько модулей, и модулю нужны отдельные имена, потому что они связаны друг с другом (например, один из них является лидером) - /questions/33240154/razvertyivaniya-kubernetes-protiv-statefulsets/33240158#33240158

DaemonSet будет использоваться, когда вы хотите один Pod / реплику на узел

Другие вопросы по тегам