我们有一个 Kubernetes 服务,其 Pod 需要一些时间来预热第一个请求。基本上,第一个传入请求将从 Redis 读取一些缓存值,并且这些请求可能需要更长的时间来处理。当这些新创建的 Pod 准备就绪并接收完整流量时,在从 Redis 正确加载所有内容并进行缓存之前,它们可能会在长达 30 秒的时间内变得响应不灵敏。
我知道,我们绝对应该重组应用程序以防止这种情况发生,不幸的是,这在不久的将来是不可行的(我们正在努力)。
如果能够减少新创建的 Pod 的重量,那就太好了,这样它们一开始就会收到 1/10 的流量,随着时间的推移,重量会不断增加。这对于我们的应用程序的新部署版本来说也非常有用,可以查看它的行为是否正确。
为什么您需要在第一次调用时加载缓存,而不是在连接到就绪探针的心跳中加载缓存?另一种选择是利用初始化容器 https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#using-init-containers在 Kubernetes 中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)