搜索

1.22.3. control plane 故障排除

download PDF

Service Mesh control plane 由 Istiod 组成,它会将几个以前的 control plane 组件(Citadel、Galley、Pilot)整合为一个二进制文件。部署 ServiceMeshControlPlane 还会 创建组成 Red Hat OpenShift Service Mesh 的其他组件,如 架构 主题所述。

1.22.3.1. 验证 Service Mesh control plane 安装

在创建 Service Mesh control plane 时,Service Mesh Operator 使用您在 ServiceMeshControlPlane 资源文件中指定的参数进行以下操作:

  • 创建 Istio 组件并部署以下 pod:

    • istiod
    • istio-ingressgateway
    • istio-egressgateway
    • grafana
    • prometheus
    • wasm-cacher
  • 调用 Kiali Operator 根据 SMCP 或 Kiali 自定义资源中的配置创建 Kaili 部署。

    注意

    您可以查看 Kiali Operator 中的 Kiali 组件,而不是 Service Mesh Operator。

  • 调用 Red Hat OpenShift distributed tracing Platform Operator,以根据 SMCP 或 Jaeger 自定义资源中的配置创建分布式追踪平台组件。

    注意

    您可以在 Red Hat OpenShift distributed tracing Platform Operator 和 Elasticsearch Operator 下的 Elasticsearch 组件中查看 Jaeger 组件,而不是 Service Mesh Operator。

    通过 OpenShift Container Platform 控制台

    您可以在 OpenShift Container Platform web 控制台中验证 Service Mesh control plane 安装。

    1. 导航到 Operators Installed Operators
    2. 选择 <istio-system> 命名空间。
    3. 选择 Red Hat OpenShift Service Mesh Operator。

      1. Istio Service Mesh Control Plane 标签页。
      2. 点 control plane 的名称,例如 basic
      3. 若要查看部署所创建的资源,可单击 Resources 选项卡。您可以使用过滤器来缩小您的视图,例如,检查所有 Pod 的状态是否为 running
      4. 如果 SMCP 状态指示任何问题,请检查 YAML 文件中的 status: 输出以了解更多信息。
      5. 返回到 Operators Installed Operators
    4. 选择 OpenShift Elasticsearch Operator。

      1. Elasticsearch 标签页。
      2. 点部署的名称,如 elasticsearch
      3. 若要查看部署创建的资源,请点 Resources 选项卡。
      4. 如果状态列有任何问题,请检查 YAML 选项卡中的 status: 输出以了解更多信息。
      5. 返回到 Operators Installed Operators
    5. 选择 Red Hat OpenShift distributed tracing Platform Operator。

      1. Jaeger 标签页。
      2. 点部署的名称,如 jaeger
      3. 若要查看部署所创建的资源,可单击 Resources 选项卡。
      4. 如果状态列显示任何问题,请检查 YAML 选项卡中的 status: 输出以了解更多信息。
      5. 导航到 Operators Installed Operators
    6. 选择 Kiali Operator。

      1. Istio Service Mesh Control Plane 标签页。
      2. 点部署的名称,如 kiali
      3. 若要查看部署所创建的资源,可单击 Resources 选项卡。
      4. 如果状态列有任何问题,请检查 YAML 选项卡中的 status: 输出以了解更多信息。

从命令行

  1. 运行以下命令,以查看 Service Mesh control plane pod 是否可用并正在运行,其中 istio-system 是安装 SMCP 的命名空间。

    $ oc get pods -n istio-system

    输出示例

    NAME                                   READY   STATUS    RESTARTS   AGE
    grafana-6776785cfc-6fz7t               2/2     Running   0          102s
    istio-egressgateway-5f49dd99-l9ppq     1/1     Running   0          103s
    istio-ingressgateway-6dc885c48-jjd8r   1/1     Running   0          103s
    istiod-basic-6c9cc55998-wg4zq          1/1     Running   0          2m14s
    jaeger-6865d5d8bf-zrfss                2/2     Running   0          100s
    kiali-579799fbb7-8mwc8                 1/1     Running   0          46s
    prometheus-5c579dfb-6qhjk              2/2     Running   0          115s
    wasm-cacher-basic-5b99bfcddb-m775l     1/1     Running   0          86s

  2. 使用以下命令检查 Service Mesh control plane 部署的状态。使用部署 SMCP 的命名空间替换 istio-system

    $ oc get smcp -n <istio-system>

    当 STATUS 列是 ComponentsReady 时,安装成功完成。

    输出示例

    NAME    READY   STATUS            PROFILES      VERSION   AGE
    basic   10/10   ComponentsReady   ["default"]   2.1.3     4m2s

    如果修改并重新部署了 Service Mesh control plane,其状态应该会显示 UpdateSuccessful

    输出示例

    NAME            READY     STATUS             TEMPLATE   VERSION   AGE
    basic-install   10/10     UpdateSuccessful   default     v1.1     3d16h

  3. 如果 SMCP 状态指示了 ComponentsReady 以外的任何内容,请检查 SCMP 资源中的 status: 输出以获取更多信息。

    $ oc describe smcp <smcp-name> -n <controlplane-namespace>

    输出示例

    $ oc describe smcp basic -n istio-system

  4. 使用以下命令检查 Jaeger 部署的状态,其中 istio-system 是部署 SMCP 的命名空间。

    $ oc get jaeger -n <istio-system>

    输出示例

    NAME     STATUS    VERSION   STRATEGY   STORAGE   AGE
    jaeger   Running   1.30.0    allinone   memory    15m

  5. 使用以下命令检查 Kiali 部署的状态,其中 istio-system 是部署 SMCP 的命名空间。

    $ oc get kiali -n <istio-system>

    输出示例

    NAME    AGE
    kiali   15m

1.22.3.1.1. 访问 Kiali 控制台

您可以在 Kiali 控制台中查看应用程序的拓扑、健康和指标。如果您的服务遇到问题,Kiali 控制台可让您通过服务查看数据流。您可以查看不同级别中的与网格组件相关的信息,包括抽象应用程序、服务以及负载。Kiali 还会实时提供命名空间的互动图形视图。

要访问 Kiali 控制台,您必须安装并配置了 Red Hat OpenShift Service Mesh。

安装过程创建了访问 Kiali 控制台的路由。

如果您知道 Kiali 控制台的 URL,您可以直接访问它。如果您不知道 URL,请使用以下指示:

管理员的步骤

  1. 使用管理员角色登录 OpenShift Container Platform Web 控制台。
  2. Home Projects
  3. 如有必要,在 Projects 页面上,使用过滤器来查找项目的名称。
  4. 点项目的名称,例如 bookinfo
  5. Project details 页面中,点 Launcher 部分的 Kiali 链接。
  6. 使用与访问 OpenShift Container Platform 控制台相同的用户名和密码登录到 Kiali 控制台。

    第一次登录到 Kiali 控制台时,您会看到 Overview 页面,它会显示服务网格中您有权查看的所有命名空间。

    如果您验证了控制台安装,且命名空间还没有添加到网格中,则可能无法显示 istio-system 以外的任何数据。

开发人员的步骤

  1. 使用开发人员角色登录 OpenShift Container Platform Web 控制台。
  2. 单击 Project
  3. 如有必要,在 Project Details 页面上,使用过滤器来查找项目的名称。
  4. 点项目的名称,例如 bookinfo
  5. Project 页面中,点 Launcher 部分的 Kiali 链接。
  6. 单击 Log In With OpenShift
1.22.3.1.2. 访问 Jaeger 控制台

要访问 Jaeger 控制台,您必须安装并配置了 Red Hat OpenShift Service Mesh。

安装过程会创建路由来访问 Jaeger 控制台。

如果您知道 Jaeger 控制台的 URL,您可以直接访问它。如果您不知道 URL,请使用以下指示:

从 OpenShift 控制台的步骤

  1. 以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。
  2. 进入 Networking Routes
  3. Routes 页面中,从 Namespace 菜单中选择 Service Mesh control plane 项目,如 istio-system

    Location 列显示每个路由的链接地址。

  4. 如有必要,使用过滤器来查找 jaeger 路由。单击路由 位置 以启动控制台。
  5. 单击 Log In With OpenShift

Kiali 控制台的步骤

  1. 启动 Kiali 控制台。
  2. 单击左侧导航窗格中的 Distributed Tracing
  3. 单击 Log In With OpenShift

通过 CLI 操作的步骤

  1. 以具有 cluster-admin 角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. 要使用命令行查询路由详情,请输入以下命令。在本例中,istio-system 是 Service Mesh control plane 命名空间。

    $ export JAEGER_URL=$(oc get route -n istio-system jaeger -o jsonpath='{.spec.host}')
  3. 启动浏览器并进入 https://<JAEGER_URL>,其中 <JAEGER_URL> 是您在上一步中发现的路由。
  4. 使用您用于访问 OpenShift Container Platform 控制台的相同用户名和密码登录。
  5. 如果您已将服务添加到服务网格中并生成了 trace,您可以使用过滤器和 Find Traces 按钮搜索 trace 数据。

    如果您要验证控制台安装,则不会显示 trace 数据。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.