javascript - GKE交通管理

标签 javascript css kubernetes google-kubernetes-engine

我有以下问题。
我们在 GKE 上部署了一个带有10个Pod的网站,在新部署中,我们使用MAXsurge=1 MAXunavailable=0

有时,当我尝试在部署新版本期间加载网站时,在浏览器中仅看到标题,并且加载静态块时出现一些错误...我认为负载均衡器会将我发送到旧的pod或尝试加载旧的缓存的静态文件...。是否有一种方法可以配置GKE,以便仅在所有可用的或类似的设备上才将流量发送到新的Pod。
部署后2分钟,我在cloudbuild中清除了CF缓存,这是最后一步,但这不是100%的帮助。

我相信可以将其配置为仅将流量发送到新版本的Pod或类似的东西,但是我对GKE还是陌生的,不确定

也许我们在css或浏览器缓存控制的时间戳中出了点问题.....它正在寻找不存在的文件.....
browser errors

最佳答案

负载平衡器会将流量发送到任何被认为正常(通过就绪探针)的Pod。此分发由k8s服务处理。根据您当前的部署计划,将在删除任何旧容器之前创建具有新版本的新容器。在准备好新的 pods (通过readinessProbe)之前,不会删除旧的 pods 。如果在此窗口期间将请求发送到您的应用程序,则很可能有流量流向您的旧应用程序。

如果您有多个 pods ,则此过程将花费更长的时间,因为新 pods 一次推出1个,而旧 pods 则以相同的速度卸下。只要有一个Pod在就绪状态下运行旧版本,就有可能将流量定向到该Pod。

确保所有流量都流向新应用程序的唯一真实方法是立即执行完整部署(如果有3个容器,请将maxUnavailable设置为3)。这将导致短暂的停机时间(持续时间很长,直到您的Pod就绪为止),但将确保没有流量流向您的旧版本。

另外,您可以通过使用不同的标签(例如version=1.1)使用新版本创建第二个部署来进行蓝绿色部署。所有Pod就绪后,更新服务定义以指向新标签。所有流量将立即切换,而不会造成停机。

关于javascript - GKE交通管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62451088/

相关文章:

kubernetes - 如何在EKS中添加或修复kube-dns?

amazon-web-services - 如何在 EKS 集群中基于内存的指标实现自动缩放

javascript - 这是什么意思? !功能()

javascript - 半秒后 RGB 换色器窗体刷新

javascript - 如何对两个键必须匹配的数组求和,如 Excel Pivot?

javascript - CSS :hover rerender after covering element height 0

java - 有没有办法在 Java 中获取 Activity Kubernetes Pod 的数量

javascript - 如何在 JavaScript 中为自定义对象创建属性?

javascript - 如何在 Safari 上修复 3D 变换图像上的剪辑文本?

css - 在多张纸上管理sass中的半径值