Cassandra в Kubernetes podManagementPolicy — OrderedReady и Parallel

В каждой статье, которую я видел в Интернете о запуске кластера Cassandra в Kubernetes, либо опускалось поле podManagementPolicy, либо устанавливалось значение OrderedReady, что по сути одно и то же, потому что это значение по умолчанию.

Мне было интересно, можно ли использовать podManagementPolicy: Parallel для ускорения процесса синхронизации при перезапуске нескольких узлов кластера Cassandra.

Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
3
0
577
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Да, это работает нормально. Мы используем podManagementPolicy: Parallel во всех наших наборах состояний, которые также включают в себя кластер cassandra. Это действительно помогло нам во всем сценарии перезапуска кластера, когда все модули запускаются одновременно и синхронизируются.

Вариант использования podManagementPolicy: Parallel в нашем кластере:

У нас есть 3-узловой baremetal-кластер K8s и 3-узловой кластер cassandra поверх него, использующий local-storage узла для PV. В случае local-storage PV привязан к узлу. Итак, если мы установим podManagementPolicy: OrderedReady, то проблема в том, что если мы выведем из строя 2 узла кластера, которые, скажем, cds-pod-1 и cds-pod-2, оба перейдут в неизвестное состояние. Теперь предположим, что мы поднимаем узел там, где находится cds-pod-2, тогда он не поднимает этот модуль, потому что ему нужно, чтобы cds-pod-1 находился в рабочем состоянии, чтобы перевести cds-pod-2 в рабочее состояние. Следовательно, мы должны изменить podManagementPolicy: Parallel, и тогда вы можете вызвать капсулу любым способом, не зависящим от порядка.

Ответ принят как подходящий

Насколько я знаю, это плохая идея. Я попробовал, и последний узел перешел в CrashLoopBackoff. Похоже, причина в том, что присоединение узлов дает сбой, если они видят, что другой узел пытается присоединиться в то же время.

podManagementPolicy: OrderedReady должен быть путь.

Параллельное управление PodManagement по-прежнему является безопасной операцией. Поскольку Cassandra образует кольцо и не использует архитектуру master/slave, параллельный запуск модулей допустим. Однако до тех пор, пока семенные коробочки не запущены, остальные реплики будут присоединяться к аварийному циклу до тех пор, пока семенные коробочки не будут в рабочем состоянии. Может потребоваться несколько перезапусков, но они должны подняться.

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