Я бы сказал, что это не вопрос решения проблемы на уровне кубернетов с помощью какой-то конкретной c стратегии масштабирования, а скорее способность приложения справляться с такими ситуациями. Это даже не c кубернетам. Представьте, что вы развертываете его непосредственно на вычислительных экземплярах, которые также подлежат автомасштабированию, и вы окажетесь в точно такой же ситуации, когда нагрузка уменьшится и один из экземпляров будет удален из набора.
Лучше спросите себя, подходит ли такое приложение для развертывания в качестве рабочей нагрузки Kubernetes. Я могу представить, что такой сеанс видеоконференции не обязательно должен полагаться на серверную часть, развернутую только на одном узле. Вы даже можете определить некоторые правила сродства или анти-сродства, чтобы ваши поды не были запланированы на одном узле. Поэтому, если весь кластер приложений все еще работает (его модули работают на разных узлах), вытеснение ограниченного подмножества модулей не должно иметь большого значения.
Фактически вы можете столкнуться с той же проблемой с любым другое приложение, поскольку подавляющее большинство из них основано на каком-то сеансе, который необходимо установить между клиентским программным обеспечением и серверной частью. Я бы сказал, что приложение должно иметь возможность обрабатывать такой сценарий ios. Если некоторые из пользователей неожиданно теряют соединение, должна быть возможность немедленно перенаправить их на работающий экземпляр, например, другой Pod, который все еще может принимать новые запросы.
Так что в основном, если приложение разработано для обеспечения высокой доступности , масштабирование (когда мы говорим о горизонтальном масштабировании, мы на самом деле говорим о масштабировании и масштабировании) подчиненных виртуальных машин, или, более конкретно, узлов кубернетов, не должно влиять на его возможности высокой доступности. С другой стороны, если оно не предназначено для обеспечения высокой доступности, такое решение, как kubernetes, вероятно, не сильно поможет.