我正在尝试为应用程序设置蓝/绿部署环境。到目前为止,使用此规范(简化为相关部分),一切都运行良好:https://gist.github.com/haleyrc/3c648087ceeb2aa762b7a7b0efefaa3a。
部署过程包括为未使用的部署更新映像,等待部署完成,然后更改服务的颜色选择器。通过最初将服务设置为LoadBalancer
并反复卷曲刚返回了Pod名称的外部IP来验证所有这些工作。
但是,如果我经过Ingress
,则在初始设置时一切似乎都可以正常工作,但是一旦部署完成,我就会开始从蓝色和绿色吊舱中获得响应。如果我删除了未使用的部署吊舱并让它们恢复,一切将再次起作用,直到下一次部署。
我什至在运行LoadBalancer
和Ingress
的同时运行了curl
服务。 Service
的响应仅来自使用中的部署,而Ingress
的响应则是使用中和未使用的混合。
我的后端服务没有启用缓存,也没有CDN。此外,执行kubectl describe ingress backend-ingress
会显示正确的服务后端和正确的pod的IP。
我是否缺少一些简单的东西,当通过GCE入口传递时,可能会导致来自选定组之外的吊舱的响应,但只有?