第 4 章 红帽提供的 Kiali Operator


4.1. 使用红帽提供的 Kiali Operator

将应用程序添加到网格后,您可以使用红帽提供的 Kiali Operator 来查看通过应用程序的数据流。

4.1.1. 关于 Kiali

您可以使用红帽提供的 Kiali Operator 查看配置、监控流量和分析单个控制台中的 trace。它基于开源 Kiali 项目。

红帽提供的 Kiali Operator 是 Red Hat OpenShift Service Mesh 的管理控制台。它提供了仪表板、可观察性以及强大的配置和验证功能。它通过推断流量拓扑显示服务网格的结构,并显示网格的健康状况。Kiali 提供详细的指标、强大的验证、访问 Grafana 以及与 Red Hat OpenShift distributed tracing 平台(Tempo)的强大集成。

4.1.2. 安装红帽提供的 Kiali Operator

以下步骤演示了如何安装红帽提供的 Kiali Operator。

警告

不要安装 Operator 的 Community 版本。不支持 Community 版本。

先决条件

  • 访问 Red Hat OpenShift Service Mesh web 控制台。

流程

  1. 登录到 Red Hat OpenShift Service Mesh web 控制台。
  2. 进入 Operators OperatorHub
  3. 在过滤器框中键入 Kiali 来查找红帽提供的 Kiali Operator。
  4. 由红帽提供的 Kiali Operator 来显示有关 Operator 的信息。
  5. Install
  6. Operator 安装页面中,选择 stable Update Channel。
  7. 选择 All namespaces on the cluster(默认)。这会在默认的 openshift-operators 项目中安装 Operator ,并使其可以被集群中的所有项目使用。
  8. 选择 Automatic 批准策略。

    注意

    Manual 批准策略需要具有适当凭证的用户批准 Operator 的安装和订阅过程。

  9. Install
  10. Installed Operators 页会显示 Kiali Operator 的安装进度。

4.1.3. 使用 Kiali 配置 OpenShift Monitoring

以下步骤演示了如何将红帽提供的 Kiali Operator 与用户工作负载监控集成。

先决条件

  • 安装了 Red Hat OpenShift Service Mesh。
  • 启用 user-workload 监控。请参阅 为用户定义的项目启用监控
  • OpenShift Monitoring 已配置了 Service Mesh。请参阅"使用 Service Mesh 配置 OpenShift Monitoring"。
  • Red Hat 1.89 提供的 Kiali Operator 已安装。

流程

  1. 为 Kiali 创建 ClusterRoleBinding 资源:

    ClusterRoleBinding 配置示例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: kiali-monitoring-rbac
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-monitoring-view
    subjects:
    - kind: ServiceAccount
      name: kiali-service-account
      namespace: istio-system

  2. 创建 Kiali 资源并将其指向 Istio 实例:

    Kiali 资源配置示例

    apiVersion: kiali.io/v1alpha1
    kind: Kiali
    metadata:
      name: kiali-user-workload-monitoring
      namespace: istio-system
    spec:
      external_services:
        prometheus:
          auth:
            type: bearer
            use_kiali_token: true
          thanos_proxy:
            enabled: true
          url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091

  3. 当 Kiali 资源就绪时,运行以下命令来从 Route 获取 Kiali URL:

    $ echo "https://$(oc get routes -n istio-system kiali -o jsonpath='{.spec.host}')"
  4. 按照 URL 在网页浏览器中打开 Kiali。

4.1.4. 将 Red Hat OpenShift distributed tracing Platform 与红帽提供的 Kiali Operator 集成

您可以将 Red Hat OpenShift distributed tracing 平台与红帽提供的 Kiali Operator 集成,这样可启用以下功能:

  • 显示追踪覆盖和图中的详细信息。
  • 显示有关详细信息页面的 scatterplot chart 和 in-depth trace/span 信息。
  • 在日志和指标图表中集成的 span 信息。
  • 提供外部追踪 UI 的链接。

4.1.4.1. 使用红帽提供的 Kiali Operator 配置 Red Hat OpenShift distributed tracing 平台

当红帽提供的 Kiali Operator 与 Red Hat OpenShift distributed tracing 平台集成后,您可以在 Kiali 控制台中查看分布式追踪。查看这些 trace 可以了解服务网格内服务之间的通信,帮助您了解请求如何通过系统流动,以及可能出现潜在的问题。

先决条件

  • 已安装 Red Hat OpenShift Service Mesh。
  • 已使用 Red Hat OpenShift Service Mesh 配置分布式追踪平台。

流程

  1. 更新用于追踪的 Kiali 资源 spec 配置:

    用于追踪的 Kiali 资源 spec 配置示例

    spec:
      external_services:
        tracing:
          enabled: true 1
          provider: tempo
          use_grpc: false
          in_cluster_url: http://tempo-sample-query-frontend.tempo:3200
          url: https://tempo-sample-query-frontend-tempo.apps-crc.testing 2

    1
    启用追踪。
    2
    Jaeger UI 的 OpenShift 路由必须在 Tempo 命名空间中创建。您可以为 tempo-sample-query-frontend 服务手动创建它,或使用 .spec.template.queryFrontend.jaegerQuery.ingress.type: route 来更新 Tempo 自定义资源。
  2. 将更新的 spec 保存到 kiali_cr.yaml 中。
  3. 运行以下命令以应用配置:

    $ oc patch -n istio-system kiali kiali --type merge -p "$(cat kiali_cr.yaml)"

    输出示例:

     kiali.kiali.io/kiali patched

验证

  1. 运行以下命令来获取 Kiali 路由:

    $ oc get route kiali ns istio-system
  2. 进入 Kiali UI。
  3. 进入到 Workload Traces 选项卡,在 Kiali UI 中查看 trace。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.