kubernetes - Istio (1.6.4) 在 K8s 上进行日志聚合的最佳实践
问题描述
我们计划在我们的 AWS EKS K8s-Cluster 上使用 Istio,到目前为止,我们已经通过 Keycloak 探索了 Ingress、Egress 和 auth,但是我们有点迷失了如何轻松地将所有日志聚合到一个易于查询和监控的地方。Istio 文档只是提到Mixer 将死,但并没有真正帮助我们还能做什么。
范围:来自标准输出的访问日志、Istiod 日志和应用程序/微服务日志。 mTLS 在集群范围内启用(使用日志边车似乎会出现问题)
我们使用 Kiali,但这并不是我们所需要的。我们更多地关注ELK-Stack 或 Graylog 之类的东西,但理想情况下更轻量级。我们想到了Grafana Loki,但是当你用谷歌搜索 Istio+Loki 时,它相当平静……似乎无法正常工作。
所以我的问题是:在一个地方使用 K8s 上的 Istio进行日志聚合的最佳实践是什么,以及启动它需要什么(教程/操作方法链接?)
提前致谢!
解决方案
Istio 文档只是提到 Mixer 将死,但没有真正的帮助可以做些什么。
混合器已弃用。Mixer 提供的功能正在转移到 Envoy 代理中。
如果您查看 1.5 发行说明文档
可扩展性的新模型 Istio 长期以来一直是最具扩展性的服务网格,Mixer 插件允许自定义策略和遥测支持,而 Envoy 扩展允许数据平面自定义。在 Istio 1.5 中,我们宣布使用WebAssembly (Wasm)将 Istio 的可扩展性模型与 Envoy 的可扩展性模型统一起来。Wasm 将使开发人员能够在 Envoy 代理中安全地分发和执行代码——与遥测系统、策略系统、控制路由甚至转换消息正文集成。它将更加灵活和高效,无需单独运行 Mixer 组件(这也简化了部署)。
阅读我们的Wasm 博客文章,并查看来自 Google、Solo.io 和 Envoy 社区的帖子,了解有关这项激动人心的工作的更多详细信息!
在不推荐使用混频器之后,有一些新的东西,称为遥测 v2
Telemetry V2 缺少一个可以访问 K8s 元数据的中央组件(Mixer),代理本身需要提供丰富指标所需的元数据。此外,必须将 Mixer 提供的功能添加到 Envoy 代理中,以替换基于 Mixer 的遥测。Istio Telemetry V2 使用两个自定义 Envoy 插件来实现这一点。
那里描述得很好。
所以这并不是说混音器已经死了,也没有其他东西可以替代它。
在一个地方使用 K8s 上的 Istio 聚合所有这些日志的最佳实践是什么,以及启动它需要什么(教程/操作方法链接?)
我将从远程访问遥测插件开始,它展示了如何配置 Istio 以公开和访问遥测插件(prometheus、grafana、kiali 和 jaeger/zipkin)。
一切都取决于您的用例,默认情况下您可以启用 istio 提供的 prometheus、grafana kiali 和 jaeger/zipkin 版本。
另外看看 istio文档指标、日志和跟踪。
我们使用 Kiali,但这并不是我们所需要的。我们更多地关注 ELK-Stack 或 Graylog 之类的东西,但理想情况下更轻量级。我们想到了 Grafana Loki,但是当你用谷歌搜索 Istio+Loki 时,它相当平静……似乎无法正常工作。
据我所知,您应该能够使用 elk 配置 istio,但这并不容易,而且缺乏相关文档。
推荐阅读
- linux - Linux Command to display filename and its datetime
- python - 无法使用请求从相同的 url 收集配置文件名称
- android - 启动应用程序时不运行计划通知
- python - Pyspark - 为数据框定义自定义模式
- javascript - 我无法创建视频缩略图
- assembly - 如何将具有多个段的单个 asm 拆分为具有单个段的多个文件?
- jquery - 如何在页面初始加载期间限制要在 DataTable 上显示的行数?
- python - 为什么 VS Code 在鱼壳中同时调用 source miniconda3/bin/activate 和 conda activate ?
- ios - 从 Xcode 9.4 升级到 Xcode 11 和从 Swift 3.0 升级到 Swift 4.2 后在 iOS 应用程序中使用 Realm 时指针损坏
- jquery - Kendo Grid 不为可见列提供数据