У нас есть сине-зеленая система развертывания, которую мы используем довольно давно. У нас есть две бэкэнд-службы на балансировщике нагрузки. Один сервис предназначен для тестирования, а другой - для производства. За этими внутренними службами используются 2 разных пула узлов (k8s). Чтобы развернуть новую версию в производственной среде, мы просто меняем группу экземпляров в производственной серверной службе. Он работал довольно долго, до июня 2019 года. После переключения группы инстансов на короткий период времени (около 2-3 минут) серверная служба недоступна, и LB отвечает с ошибкой 502.
Я также создал проблему в трекере ошибок GCP, который включает в себя скриншоты и шаги для воспроизведения - https://issuetracker.google.com/issues/136020917
Это ожидаемое поведение. Изменения в ваших серверных службах не происходят мгновенно. На распространение ваших изменений по сети может потребоваться несколько минут.
Лучше всего, прежде чем вносить какие-либо изменения, создайте группу экземпляров. Затем подождите, пока он станет здоровым, и проверьте поток трафика. После этого другой можно удалить.
Это предполагаемое поведение, и согласно документации в GCP любые изменения, внесенные в серверные службы в балансировщике нагрузки, делают серверные ВМ недоступными через балансировщик нагрузки в течение нескольких минут.
При этом я бы рекомендовал следовать этой документации для выполнения скользящих обновлений в GKE. Использование этого обновления устранит простои.
[1] Выполнение скользящих обновлений https://cloud.google.com/kubernetes-engine/docs/how-to/updating-apps