Я пытаюсь настроить сине-зеленую среду развертывания для приложения.До сих пор все работало довольно хорошо с использованием этой спецификации (упрощенной до соответствующих частей): https://gist.github.com/haleyrc/3c648087ceeb2aa762b7a7b0efefaa3a.
Процесс развертывания включает обновление образа для неиспользуемого развертывания, ожидая завершения развертывания,а затем изменив селектор цвета для службы.Это все работает как задумано, что я и проверил, изначально настроив службу как LoadBalancer
и многократно свернув внешний IP-адрес, который только что возвратил имя модуля.
Однако, если я пройду через Ingress
, всеКажется, работает при первоначальной настройке, но как только происходит развертывание, я начинаю получать ответы как с синих, так и с зеленых модулей.Если я удаляю неиспользуемые модули развертываний и позволяю им вернуться обратно, все работает снова до следующего развертывания.
Я даже запустил службу как LoadBalancer
одновременно с Ingress
работал и curl
работал одновременно.Ответы от Service
были только от используемого развертывания, тогда как ответы от Ingress
представляли собой сочетание использования и неиспользования.
Нет включенного кэшированиямой бэкэнд сервис и нет CDN на месте.Более того, выполнение kubectl describe ingress backend-ingress
показывает правильный сервисный бэкэнд и IP-адреса правильных модулей.
Есть ли что-то простое, что мне не хватает, что может вызвать ответы от модулей за пределами выбранной группы, но только при прохождении через GCE Ingress?