如何保持 asp.net 核心网络 api 应用程序始终打开以避免 cold/idle AKS 中托管的问题
how to keep asp.net core web api app always ON to avoid cold/idle issue hosted in AKS
我在 AKS 中有一堆 asp.net 核心网络 api 应用程序 运行 以下是观察结果:
- 当天的第一个 api 请求在 5009 毫秒内完成。
- 几秒内的后续请求在 367 毫秒内完成
20 分钟后,当我再次拨打 API 电话时,
- 第一次调用又花了 2590 毫秒,为什么?这是冷启动行为吗?如何避免?
- 后续调用在 372 毫秒内完成
我知道我们在 App Service 中有一些解决方案,我可以让服务始终开启,以避免在空闲时间后调用时延迟 API 响应。
问题是,AKS 部署的 Web api 的解决方案是什么? Kubernetes liveness prob 会在这里有所帮助吗(到目前为止我还没有使用它)?
你应该始终设置一个 liveness probe 设置,这是 Kubernetes 知道你的容器没有死的唯一方法。
如果您致电api/version 在 liveness 探测器上,或者如果您有外部依赖项,您可以将它们链接到一个 api/healthcheck 中,然后您只需将您的部署配置为此检查。
我在 AKS 中有一堆 asp.net 核心网络 api 应用程序 运行 以下是观察结果:
- 当天的第一个 api 请求在 5009 毫秒内完成。
- 几秒内的后续请求在 367 毫秒内完成
20 分钟后,当我再次拨打 API 电话时,
- 第一次调用又花了 2590 毫秒,为什么?这是冷启动行为吗?如何避免?
- 后续调用在 372 毫秒内完成
我知道我们在 App Service 中有一些解决方案,我可以让服务始终开启,以避免在空闲时间后调用时延迟 API 响应。
问题是,AKS 部署的 Web api 的解决方案是什么? Kubernetes liveness prob 会在这里有所帮助吗(到目前为止我还没有使用它)?
你应该始终设置一个 liveness probe 设置,这是 Kubernetes 知道你的容器没有死的唯一方法。
如果您致电api/version 在 liveness 探测器上,或者如果您有外部依赖项,您可以将它们链接到一个 api/healthcheck 中,然后您只需将您的部署配置为此检查。