1.22.3. control plane 故障排除
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 安装。
-
导航到 Operators
Installed Operators。 -
选择
<istio-system>
命名空间。 选择 Red Hat OpenShift Service Mesh Operator。
- 点 Istio Service Mesh Control Plane 标签页。
-
点 control plane 的名称,例如
basic
。 -
若要查看部署所创建的资源,可单击 Resources 选项卡。您可以使用过滤器来缩小您的视图,例如,检查所有 Pod 的状态是否为
running
。 -
如果 SMCP 状态指示任何问题,请检查 YAML 文件中的
status:
输出以了解更多信息。 -
返回到 Operators
Installed Operators。
选择 OpenShift Elasticsearch Operator。
- 点 Elasticsearch 标签页。
-
点部署的名称,如
elasticsearch
。 - 若要查看部署创建的资源,请点 Resources 选项卡。
-
如果
状态
列有任何问题,请检查 YAML 选项卡中的status:
输出以了解更多信息。 -
返回到 Operators
Installed Operators。
选择 Red Hat OpenShift distributed tracing Platform Operator。
- 点 Jaeger 标签页。
-
点部署的名称,如
jaeger
。 - 若要查看部署所创建的资源,可单击 Resources 选项卡。
-
如果
状态
列显示任何问题,请检查 YAML 选项卡中的status:
输出以了解更多信息。 -
导航到 Operators
Installed Operators。
选择 Kiali Operator。
- 点 Istio Service Mesh Control Plane 标签页。
-
点部署的名称,如
kiali
。 - 若要查看部署所创建的资源,可单击 Resources 选项卡。
-
如果
状态
列有任何问题,请检查 YAML 选项卡中的status:
输出以了解更多信息。
-
导航到 Operators
从命令行
运行以下命令,以查看 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
使用以下命令检查 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
如果 SMCP 状态指示了
ComponentsReady
以外的任何内容,请检查 SCMP 资源中的status:
输出以获取更多信息。$ oc describe smcp <smcp-name> -n <controlplane-namespace>
输出示例
$ oc describe smcp basic -n istio-system
使用以下命令检查 Jaeger 部署的状态,其中
istio-system
是部署 SMCP 的命名空间。$ oc get jaeger -n <istio-system>
输出示例
NAME STATUS VERSION STRATEGY STORAGE AGE jaeger Running 1.30.0 allinone memory 15m
使用以下命令检查 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,请使用以下指示:
管理员的步骤
- 使用管理员角色登录 OpenShift Container Platform Web 控制台。
-
点 Home
Projects。 - 如有必要,在 Projects 页面上,使用过滤器来查找项目的名称。
-
点项目的名称,例如
bookinfo
。 - 在 Project details 页面中,点 Launcher 部分的 Kiali 链接。
使用与访问 OpenShift Container Platform 控制台相同的用户名和密码登录到 Kiali 控制台。
第一次登录到 Kiali 控制台时,您会看到 Overview 页面,它会显示服务网格中您有权查看的所有命名空间。
如果您验证了控制台安装,且命名空间还没有添加到网格中,则可能无法显示
istio-system
以外的任何数据。
开发人员的步骤
- 使用开发人员角色登录 OpenShift Container Platform Web 控制台。
- 单击 Project。
- 如有必要,在 Project Details 页面上,使用过滤器来查找项目的名称。
-
点项目的名称,例如
bookinfo
。 - 在 Project 页面中,点 Launcher 部分的 Kiali 链接。
- 单击 Log In With OpenShift。
1.22.3.1.2. 访问 Jaeger 控制台
要访问 Jaeger 控制台,您必须安装并配置了 Red Hat OpenShift Service Mesh。
安装过程会创建路由来访问 Jaeger 控制台。
如果您知道 Jaeger 控制台的 URL,您可以直接访问它。如果您不知道 URL,请使用以下指示:
从 OpenShift 控制台的步骤
-
以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有
dedicated-admin
角色的帐户。 -
进入 Networking
Routes。 在 Routes 页面中,从 Namespace 菜单中选择 Service Mesh control plane 项目,如
istio-system
。Location 列显示每个路由的链接地址。
-
如有必要,使用过滤器来查找
jaeger
路由。单击路由 位置 以启动控制台。 - 单击 Log In With OpenShift。
Kiali 控制台的步骤
- 启动 Kiali 控制台。
- 单击左侧导航窗格中的 Distributed Tracing。
- 单击 Log In With OpenShift。
通过 CLI 操作的步骤
以具有
cluster-admin
角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有dedicated-admin
角色的帐户。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
要使用命令行查询路由详情,请输入以下命令。在本例中,
istio-system
是 Service Mesh control plane 命名空间。$ export JAEGER_URL=$(oc get route -n istio-system jaeger -o jsonpath='{.spec.host}')
-
启动浏览器并进入
https://<JAEGER_URL>
,其中<JAEGER_URL>
是您在上一步中发现的路由。 - 使用您用于访问 OpenShift Container Platform 控制台的相同用户名和密码登录。
如果您已将服务添加到服务网格中并生成了 trace,您可以使用过滤器和 Find Traces 按钮搜索 trace 数据。
如果您要验证控制台安装,则不会显示 trace 数据。