我有一堆部署在共享Kubernetes集群上的容器/微服务。由于它是共享的,我们对在其他应用程序之间共享的控制计划中部署组件没有太多发言权。您是否可以共享任何侧车解决方案或组件的输入,这些解决方案或部件是开源的,没有商业使用许可证,我可以利用这些许可证在我的命名空间内生成关于API流量的各种见解(API没有调用API,延迟、请求/响应时间、错误(,最好是与一些可视化。
我遇到的大多数解决方案通常都需要部署到控制平面中。
Kubernetes最好的开源监控堆栈是基于Prometheus(用于度量收集和存储(和Grafana(用于仪表板和可视化(的监控堆栈。
这是一篇描述它如何工作的文章,网上有很多。
简而言之,这就是它的工作方式:
- Prometheus和Grafana是集群中的独立部署(可能在专用的
-infra
命名空间中(,通过ConfigMaps进行配置 - Prometheus需要配置为从应用程序命名空间上的pod中抓取度量
- 应用程序需要公开特定HTTP端口和路径上的度量,例如
/metrics
- Grafana默认连接到Prometheus,因此不需要在这一侧进行其他配置(可能只需仔细检查数据源配置(
几乎没有什么需要部署到控制平面中,它只需要在某个地方运行。但它可能在您的命名空间或其他任何地方。Elastic有一个FOSS APM产品,我听说过一些不错的东西,或者你可以看看为普罗米修斯手动工具化的东西。