2.2. Red Hat OpenShift Service Mesh 和 Kiali
Kiali 基于开源 Kiali 项目。请参阅 Kiali 项目。红帽提供的 Kiali 由三个部分组成:
- 红帽提供的 Kiali Operator
- Kiali Server
- OpenShift Service Mesh Console (OSSMC)插件
协同工作,它们组成了 OpenShift Service Mesh 的用户界面(UI)。Kiali 通过显示微服务及其连接方式,为您提供对服务网格的可见性。
Kiali 可以帮助您定义、验证并观察 Istio 服务网格。它所提供的拓扑结构可以帮助您了解服务网格的结构,并提供服务网格的健康状况信息。
Kiali 实时提供网格命名空间的交互式图形视图,可让您了解电路断路器、请求率、延迟甚至流量流图形等功能。Kiali 提供了不同级别的组件的深入了解,如应用程序、服务、工作负载,并可在所选图形节点或边缘上显示上下文信息和图表的交互。
Kiali 还提供验证 Istio 配置的功能,如网关、目的地规则、虚拟服务、网格策略等。Kiali 提供了详细的指标数据,并可使用基本的 Grafana 集成来进行高级查询。通过将 Red Hat OpenShift distributed tracing Platform (Tempo)和 Red Hat OpenShift distributed tracing 数据收集集成到 Kiali 控制台中来提供分布式追踪。
2.2.1. Kiali 架构
- Kiali Server (后端)
- 此组件在容器应用程序平台中运行,并与服务网格组件通信,检索和处理数据,并将这些数据公开给控制台。Kiali 服务器不需要存储。当将服务器部署到集群时,配置在配置映射和 secret 中设置。
- Kiali 控制台(前端)
- Kiali 控制台是一个 Web 应用程序。控制台会查询 Kiali 服务器将数据提供给用户。
另外,Kiali 依赖于由容器应用程序平台和 Istio 提供的外部服务和组件。
- Red Hat Service Mesh (Istio)
- Istio 是 Kiali 的要求。Istio 是提供和控制服务网格的组件。虽然 Kiali 和 Istio 可以单独安装,但是 Kiali 需要 Istio。如果没有安装 Istio,则无法工作。Kiali 需要检索 Istio 数据和配置,这些数据和配置通过 Prometheus 和 Red Hat OpenShift Service Mesh 集群 API 公开。
- Prometheus
- 专用 Prometheus 实例是可选的。启用 Istio 遥测时,指标数据存储在 Prometheus 中。Kiali 使用这个 Prometheus 数据来决定网状拓扑结构、显示指标数据、计算健康状况、显示可能的问题等等。Kiali 与 Prometheus 直接沟通,并假设 Istio Telemetry 使用的数据 schema。Istio 依赖于 Prometheus,Kiali 也依赖于 Prometheus。许多 Kiali 的功能在没有 Prometheus 的情况下将无法工作。
- OpenShift Container Platform API
- Kiali 使用 OpenShift Container Platform API 获取和解析服务网格配置。例如,Kiali 查询集群 API 以获取命名空间、服务、部署、pod 和其他实体的定义。Kiali 还提供查询来解析不同集群实体之间的关系。另外,还可以通过查询集群 API 以获取 Istio 配置,比如虚拟服务、目的规则、路由规则、网关、配额等等。
- Tracing
- 追踪是可选的,但在安装 Red Hat OpenShift distributed tracing 平台和 Kiali 时,Kiali 控制台会包括一个标签页来显示分布式追踪数据,并在图形本身上追踪集成。请注意:如果禁用 Istio 的分布式追踪功能,则不会提供追踪数据。另请注意,用户必须可以访问用户查看追踪数据的命名空间。
- Grafana
- Grafana 是可选的。如果使用了 Grafana,Kiali 的 metrics 页会包括一个链接,用户可以使用它访问 Grafana 中相同的指标数据。请注意,Grafana 不支持作为 OpenShift Container Platform 或 OpenShift Service Mesh 的一部分。
2.2.2. Kiali 的功能
Kiali 控制台与 OpenShift Service Mesh 集成,并提供以下功能:
- Health
- 快速识别应用程序、服务或工作负载的问题。
- Topology
- 视觉化您的应用程序、服务或工作负载如何通过 Kiali 图形进行通信。
- 指标
- 预定义的指标仪表板可让您为 Go、Node.js Chart 服务网格和应用程序性能。Quarkus 、Spring Boot 、Thonttail 和 Vert.x 的服务网格和应用程序性能图表。。您还可以创建您自己的自定义仪表板。
- Tracing
- 与 Red Hat OpenShift distributed tracing 平台(Tempo)集成可让您在组成一个应用程序的多个微服务间追踪请求的路径。
- 验证
- 在最常见的 Istio 对象(Destination Rules、Service Entries、Virtual Services 等)上执行高级验证。
- 配置
- 使用向导创建、更新和删除 Istio 路由配置的可选功能,或者直接在 Kiali Console 的 YAML 编辑器中创建、更新和删除 Istio 路由配置。
2.2.3. OpenShift Service Mesh Console (OSSMC)插件
OpenShift Service Mesh Console (OSSMC)插件是 Red Hat OpenShift Service Mesh 的 OpenShift Container Platform 插件。它将红帽提供的大多数 Kiali Operator 集成到 OpenShift 控制台中,将 Service Mesh 主菜单选项与专用屏幕注入,以及在整个控制台集成 Service Mesh 标签页。
OSSMC 插件使用红帽提供的 Kiali Operator 安装,需要 Kiali Server 组件。OSSMC 插件有自己的自定义资源(CR)配置。