В Kubernetes, что происходит с данными внутри узлов, когда узел опустошается?
У меня есть приложение с отслеживанием состояния, которое я хочу использовать с Kubernetes, поэтому я смотрел на StatefulSet. Кажется, что StatefulSets - хороший кандидат для моего развертывания, но у меня есть опасения по поводу того, что это не из-за перебоев в работе узлов, поскольку мы работаем в облачной инфраструктуре.
Если в моем приложении нет состояний, администраторы могут удалять узлы и добавлять узлы, не беспокоясь о приложениях, поскольку модули будут выселены и назначены разным узлам. Но так как мое приложение с состоянием, оно будет хранить данные локально в PersistentVolume. Мой вопрос: если узел, который содержит PersistentVolume для моего приложения, истощается, что происходит с моими данными? Это ушло? или он мигрирует на другой узел, когда он сливается? Я не смог найти четкого ответа на это в документации.
1 ответ
Как вы сказали, если вы используете локальное хранилище для хранения данных с помощью постоянного тома на узле, то время жизни этих данных зависит от времени жизни узла. Поэтому его единственная точка отказа. Это не обеспечивает гибкость для k8s. Так как наборы состояний должны быть на этом конкретном узле.
Если вы используете внешнее хранилище с помощью Persistent Volume или Storage Class, он просто удаляет единственную точку отказа и обеспечивает гибкость модулей с сохранением состояния. Теперь вам нужно предоставить явным сведениям для модулей, что вы хотите делать с данными, если модули умирают.