Можем ли мы обновить лидера k8s сразу же, когда модуль лидера мертв?
Я следовал этой статье, чтобы использовать выборы лидера k8s для HA моего приложения. Но я встретил одну проблему. Может ли кто-нибудь иметь такой же опыт? Например, у меня есть 4 копии под. Один из стручков уже был выбран в качестве лидера. Когда этот модуль лидера не работает (например, убить модуль вручную), планировщику потребуется 30–40 секунд, чтобы запустить новый модуль, но старый мертвый лидер будет работать в течение 10 или более секунд, чтобы возобновить его. Есть ли способ обновить лидера немедленно, когда модуль лидера мертв? Или есть какие-то настройки, которые я пропустил?
В статье, на которую я ссылаюсь, в ней упоминается следующее содержание, и это именно та проблема, которая у меня есть:
Поскольку стручки в Kubernetes имеют льготный период до завершения, это может занять 30-40 секунд.
Вот демонстрационный файл yaml, который я использую. https://gist.githubusercontent.com/ginkgoch/563d8d8caf9e4dd99a0c8de323e9211c/raw/f1abb94647c60874e4625b1b94f8fa125bd1a5ea/k8s-leader-election.yaml
1 ответ
В статье объясняется, что это связано с льготным периодом. Когда происходит убийство, лидерский отсек еще не умер, он просто закрывается.
Вы можете сократить или пропустить процесс выключения, который принудительно удалит или изменит льготный период в спецификации. Тогда риск состоит в том, что модуль может отключиться без полной очистки - вы будете знать, относится ли это к вашим модулям.
Теоретически должно быть возможно прослушивать ловушку preStop и начинать выборы лидера, как только модуль начинает завершаться. Но тогда вы рискуете иметь двух лидеров, пока старый лидер завершает свою работу (k8s должен прекратить отправку трафика старому лидеру в этот момент, но он все еще может делать что-то важное, в зависимости от вашего дизайна). k8s.gcr.io/leader-elector
реализация, кажется, требует ожидания старого лидера, чтобы полностью остановиться. Возможно, есть другие реализации, которые могут поддержать немедленные выборы, но я не нашел ни одного с быстрым поиском, и я думаю, что ожидание прекращения действия старого лидера не является чем-то необычным.