我正在为 ASP.NET Core 应用程序实现 Horizontal Pod Autoscalar,并在 Program.cs 中添加所需的代码片段,该代码片段适用于另一个项目。在本地运行应用程序时,我可以使用指标端点查看数据。但是,当我部署代码时,我无法看到对指标端点的 http 请求调用,该端点可在 hpa 正在工作的应用程序的日志中找到。如果 GCP 的托管服务能够抓取指标,如何进行故障排除。
发生错误的主要原因是指标服务器崩溃或无响应,请尝试以下步骤来解决您的问题:
1.验证指标服务器是否报告OOM(内存不足)事件。要检查这一点,请打开 GKE 控制台页面上的“Workload”选项卡,使用“metrics-server”执行搜索,然后单击部署名称以查看部署详细信息。单击选择 pod 的名称。重新启动次数大于 0 表示容器已失败或已终止。
如果是,则metrics-server-config configmap中的修改是永久性的。增加metrics-server-config中的memoryPerNode直到没有OOM事件,按照这个文档。
2.此外,您可以在指标服务器部署文件中添加以下命令:
containers:
- command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
name: metrics-server
我相信指标服务器无法找到具有InternalIP的kubelet,因此出现了问题。有关更多信息,请按照分步说明设置HPA。请参阅此 如何为 HPA Auto Scaling 指标启用 KubeAPI 服务器。