Как перенаправить запросы пользователей на другое развертывание в Kubernetes?

#kubernetes #deployment #kubernetes-pod #kubernetes-deployment #readinessprobe

#kubernetes #развертывание #kubernetes-pod #kubernetes-развертывание #проверка готовности

Вопрос:

У меня следующий сценарий,

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

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

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

Спасибо, помощь высоко ценится.

Ответ №1:

Я предполагаю, что при «втором развертывании» вы имеете в виду новую версию вашего приложения, в Kubernetes это будет изменение Deployment ресурса для использования другого image: .

В Kubernetes обычно запущено несколько экземпляров («реплик») вашего приложения. И когда a Deployment обновляется, чтобы содержать новую версию (например, новый образ), Kubernetes автоматически выполняет текущее обновление. Это означает, что он будет создавать новые экземпляры из нового образа — один за другим — и в то же время завершать экземпляры из старой версии приложения. Это означает, что в течение короткого периода времени у вас будут запущены обе версии приложения одновременно. Запросы пользователей будут перенаправляться на любой запущенный экземпляр. Это можно изменить, чтобы использовать другую стратегию развертывания, например, «заменить», или вы можете создать более сложную настройку.

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

Запросы к приложениям, работающим в Kubernetes, должны быть спроектированы идемпотентным образом — таким образом, чтобы клиент мог повторить запрос, если соединение прервано.

Комментарии:

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

2. Это зависит от того, что это за запрос и как он реализован. Например. HTTP GET <url> обычно является идемпотентным как есть. Но HTTP POST должен быть реализован идемпотентным способом, например, содержать идентификатор или хэш, чтобы сервер мог определить, что «повторная попытка» была идентична предыдущему запросу.