Чем отличается Deployment от StatefulSet?

Категория: k8s

Просмотров: 30

Ответ:

Deployment выполняет обновление подов и RelicaSets, и является наиболее используемым ресурсом Kubernetes для деплоя приложений, как правило – stateless приложений, но если подключить Persistent Volume – приложение можно использовать как stateful, но все поды деплоймента будут совместно использовать это хранилище и данные из него. Для PVC можно указать режим доступа как ReadWriteMany, так и ReadOnlyMany.

StatefulSet используются для управления stateful-приложениями. Создаёт не ReplicaSet, а Pod напрямую с уникальным именем. В связи с этим – при использовании StatefulSet нет возможности выполнить откат версии, но можно его удалить или выполнить скейлинг. При обновлении StatefulSet – будет выполнено RollingUpdate всех подов. StatefulSet использует volumeClaimTemplates для описания хранилища и при использовании PVC для каждого пода будет создан уникальный PVC и режимом доступа ReadWriteOnce.