Нужно ли для развертывания звездного ядра на k8s постоянное хранилище? - PullRequest
0 голосов
/ 25 июня 2019

Я хочу развернуть звездное ядро ​​на k8s с CATCHUP COMPLETE. Я использую этот образ докера satoshipay/stellar-core

В упомянутых документах Docker image / data используется для хранения некоторой информации о БД. И я видел, что шаблон helm использует постоянный том и монтирует его в / data.

Мне было интересно, что произойдет, если я буду использовать развертывание вместо набора с сохранением состояния и перезапустить модуль, обновить его версию докера или удалить его? Это снова инициализирует БД?

Также требуется ли дополнительное хранилище для звездного ядра для захвата?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

В Развертывание вы указываете PersistentVolumeClaim , который является общим для всех реплик модуля. Другими словами, общий объем.

Резервное хранилище, очевидно, должно иметь ReadWriteMany или ReadOnlyMany accessMode, если у вас более одного модуля реплики.

StatefulSet вы указываете volumeClaimTemplates , чтобы каждый модуль реплики получал уникальный PersistentVolumeClaim , связанный с ним. Другими словами, нет общего тома.

StatefulSet полезен для запуска объектов в кластере, например, кластер Hadoop, кластер MySQL, где каждый узел имеет свое собственное хранилище.

Так что в вашем случае иметь большую изоляцию (без общих томов) лучше иметь решение на основе statefulset.

Если вы используете решение на основе развертывания (перезапустите модуль, обновите его версию докера или удалите его), ваша БД будет снова инициализирована.

Относительно захвата:

В общем, запуск CATCHUP_COMPLETE=true не рекомендуется в док-контейнерах, так как они по умолчанию имеют ограниченные ресурсы (если вы действительно хотите это сделать, обязательно предоставьте им доступ к большему количеству ресурсов: процессор, память и дисковое пространство).

0 голосов
/ 26 июня 2019

Statefulset vs Deployment

StatefulSet "предоставляет гарантии о порядке и уникальности этих модулей".Если ваше приложение должно быть запущено в определенном порядке, используйте statefulset .

Хранилище

Определенно используйте постоянный том для базы данных.Из K8S Docs

Файлы на диске в контейнере эфемерны

Поскольку кажется, что вы развертываете какое-то приложение блокчейна, этоможет вызвать значительные задержки при запуске

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...