Обновление руля MongoDB с архитектурой первичного-вторичного арбитра, есть ли время простоя?

#mongodb #kubernetes #kubernetes-helm #bitnami

#mongodb #kubernetes #kubernetes-helm #bitnami

Вопрос:

Я подумываю о настройке набора реплик bitnami mongodb в K8s, как описано здесь .

Однако в качестве примечания они упоминают об этом при обновлении:

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

Я не уверен, что на самом деле означает «перевод набора реплик в автономный режим»:

  1. Происходит ли так, что вся служба mongo отключается / отключается, и поэтому при выполнении обновлений руля происходит время простоя службы?
  2. Получается ли так, что при выполнении обновления в наборе реплик будет работать только один сервер mongodb, в то время как оба, другой сервер mongo db и арбитр, находятся в автономном режиме и обновляются?. В этом случае это не будет означать простоя, просто на мгновение доступен только один сервер (вместо двух), что очень похоже на автономную настройку.

Ответ №1:

Разработчик Bitnami здесь

Получается ли так, что при выполнении обновления в наборе реплик будет работать только один сервер mongodb, в то время как оба, другой сервер mongo db и арбитр, находятся в автономном режиме и обновляются?

Это будет зависеть от того, сколько у вас реплик. Если вы устанавливаете диаграмму с 2 репликами 1 арбитром, да, это означает, что. Однако, если вы установите диаграмму с 4 репликами 1 арбитром, у вас будет только 1 реплика, и арбитр будет перезапущен одновременно, при этом будут запущены остальные 3 реплики.

В этом случае это не будет означать простоя, просто на мгновение доступен только один сервер (вместо двух), что очень похоже на автономную настройку.

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

Ответ №2:

Я не знаю, что такое Helm, или что он делает, или почему он отключает два узла одновременно, но:

В этом случае это не будет означать простоя, просто на мгновение доступен только один сервер (вместо двух), что очень похоже на автономную настройку.

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

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