Развертывание или Statefulset для одной службы Gitlab реплики? - PullRequest
0 голосов
/ 29 мая 2018

Мое чтение в Kubernetes, похоже, говорит о том, что Statefulsets являются лучшим ответом для приложений с "состоянием".(В моем случае это экземпляр Gitlab.) Создание единственной реплики контейнера - это хорошо, но что произойдет, когда я отправляю обновление?

Если у моего приложения есть заявка на один постоянный том, отправляет ли обновление обновление?подключиться обратно к тому же диску?Документы Google Kubernetes Engine утверждают, что каждый модуль получит свой собственный том, и что по умолчанию используются «обновляемые» обновления.Как это может работать, если новому контейнеру, созданному во время непрерывного обновления, нужны данные в томе, который все еще используется первой репликой?

Возможно, мне не хватает чего-то, что заставляет меня бегать кругами вокруг ответа.

1 Ответ

0 голосов
/ 28 июня 2018

Вы правы, контроллер Statefulset используется для запуска приложений с состоянием.

Обновление версии пула узлов не удалит постоянный том, оно подключит новый модуль обратно ктот же постоянный объем после обновления.

Согласно документации GCP, после обновления будут удалены только данные, хранящиеся на хосте hostPath и emptyDir.Данные в постоянном томе не будут удалены.

В результате Kubernetes прекратит планирование, опустошит, а затем удалит все узлы и модули кластера.По одному.Постоянный том будет размонтирован из модуля, а после завершения обновления подключен к новому модулю.Данные в постоянном объеме будут сохранены.После обновления новый обновленный контейнер будет подключен к тому же постоянному диску.

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

...