1.23. Envoy 代理故障排除
Envoy 代理会截获服务网格中所有服务的入站和出站流量。Envoy 还会收集并报告服务网格上的遥测。Envoy 会在同一个 pod 中被部署为相关服务的 sidecar。
1.23.1. 启用 Envoy 访问日志
Envoy 访问日志可用于诊断流量故障和流,并帮助端到端流量流分析。
要为所有 istio-proxy 容器启用访问日志,请编辑 ServiceMeshControlPlane
(SMCP) 对象为日志输出添加文件名。
流程
以具有 cluster-admin 角色的用户身份登录 OpenShift Container Platform CLI。输入以下命令。然后在提示时输入您的用户名和密码。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
切换到安装 Service Mesh control plane 的项目,如
istio-system
。$ oc project istio-system
编辑
ServiceMeshControlPlane
文件。$ oc edit smcp <smcp_name>
如以下示例所示,使用
name
指定代理日志的文件名。如果没有为name
指定值,则不会写入日志条目。spec: proxy: accessLogging: file: name: /dev/stdout #file name
如需有关 pod 问题故障排除的更多信息,请参阅调查 pod 问题
1.23.2. 获取支持
如果您在执行本文档所述的某个流程或 OpenShift Container Platform 时遇到问题,请访问 红帽客户门户网站。通过红帽客户门户网站:
- 搜索或者浏览红帽知识库,了解与红帽产品相关的文章和解决方案。
- 提交问题单给红帽支持。
- 访问其他产品文档。
要识别集群中的问题,您可以在 OpenShift Cluster Manager Hybrid Cloud Console 中使用 Insights。Insights 提供了问题的详细信息,并在有可用的情况下,提供了如何解决问题的信息。
如果您对本文档有任何改进建议,或发现了任何错误,请为相关文档组件提交 JIRA 问题。请提供具体详情,如章节名称和 OpenShift Container Platform 版本。
1.23.2.1. 关于红帽知识库
红帽知识库提供丰富的内容以帮助您最大程度地利用红帽的产品和技术。红帽知识库包括文章、产品文档和视频,概述了安装、配置和使用红帽产品的最佳实践。另外,您还可以搜索已知问题的解决方案,其提供简洁的根原因描述和补救措施。
1.23.2.2. 搜索红帽知识库
如果出现 OpenShift Container Platform 问题,您可以先进行搜索,以确定红帽知识库中是否已存在相关的解决方案。
先决条件
- 您有红帽客户门户网站帐户。
流程
- 登录到 红帽客户门户网站。
- 点 Search。
在搜索字段中,输入与问题相关的关键字和字符串,包括:
- OpenShift Container Platform 组件(如 etcd)
- 相关步骤(比如 安装)
- 警告、错误消息和其他与输出与特定的问题相关
- 点 Enter 键。
- 可选: 选择 OpenShift Container Platform 产品过滤器。
- 可选: 选择 Documentation 内容类型过滤器。
1.23.2.3. 关于收集服务网格数据
您可使用 oc adm must-gather
CLI 命令来收集有关集群的信息,包括与 Red Hat OpenShift Service Mesh 相关的功能和对象:
前提条件
-
使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift Container Platform CLI (
oc
)。
流程
要使用
must-gather
收集 Red Hat OpenShift Service Mesh 数据,您必须指定 Red Hat OpenShift Service Mesh 镜像。$ oc adm must-gather --image=registry.redhat.io/openshift-service-mesh/istio-must-gather-rhel8:2.4
要使用
must-gather
为特定 Service Mesh control plane 命名空间收集 Red Hat OpenShift Service Mesh 数据,您必须指定 Red Hat OpenShift Service Mesh 镜像和命名空间。在本例中,在gather,
后将<namespace>
替换为您的 Service Mesh control plane 的命名空间,如istio-system
。$ oc adm must-gather --image=registry.redhat.io/openshift-service-mesh/istio-must-gather-rhel8:2.4 gather <namespace>
这会创建一个包含以下项目的本地目录:
- Istio Operator 命名空间及其子对象
- 所有 control plane 命名空间及其子对象
- 属于任何服务网格的所有命名空间及其子对象
- 所有 Istio 自定义资源定义(CRD)
- 所有 Istio CRD 对象,如给定命名空间中的 VirtualServices
- 所有 Istio Webhook
为了获得快速支持,请提供 OpenShift Container Platform 和 Red Hat OpenShift Service Mesh的诊断信息。
1.23.2.4. 提交支持问题单
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。 - 您有红帽客户门户网站帐户。
- 您有红帽标准订阅或高级订阅。
流程
- 登录到红帽客户门户网站的客户支持 页面。
- 点 Get support。
在 客户支持 页面的 Cases 选项卡中:
- 可选: 如果需要,更改预先填充的帐户和所有者。
- 为您的问题选择适当的类别,如 Bug 或 Defect,然后点 Continue。
输入以下信息:
- 在 Summary 字段中,输入简要但描述性问题概述,以及有关所经历的症状的详细信息,以及您的预期。
- 从 Product 下拉菜单中选择 OpenShift Container Platform。
- 从 Version 下拉菜单中选择 4.11。
- 查看推荐的红帽知识库解决方案列表,它们可能会与您要报告的问题相关。如果建议的文章没有解决这个问题,请点 Continue。
- 查看更新的推荐红帽知识库解决方案列表,它们可能会与您要报告的问题相关。这个列表的范围会缩小,因为您在创建问题单的过程中提供了更多信息。如果建议的文章没有解决这个问题,请点 Continue。
- 请确保提供的帐户信息是正确的,如果需要,请相应调整。
检查自动填充的 OpenShift Container Platform 集群 ID 是否正确。如果不正确,请手动提供集群 ID。
使用 OpenShift Container Platform Web 控制台手动获得集群 ID:
-
进入到 Home
Overview。 - 该值包括在 Details 中的 Cluster ID 项中。
-
进入到 Home
另外,也可以通过 OpenShift Container Platform Web 控制台直接创建新的支持问题单,并自动填充集群 ID。
-
从工具栏导航至 (?) help
Open Support Case。 - Cluster ID 的值会被自动填充 。
-
从工具栏导航至 (?) help
要使用 OpenShift CLI(
oc
)获取集群 ID,请运行以下命令:$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
完成以下提示的问题,点 Continue:
- 您在哪里遇到了这个问题?什么环境?
- 这个行为在什么时候发生?发生频率?重复发生?是否只在特定时间发生?
- 请提供这个问题对您的业务的影响及与时间相关的信息?
-
上传相关的诊断数据文件并点击 Continue。建议您将使用
oc adm must-gather
命令收集的数据作为起点,并提供这个命令没有收集的与您的具体问题相关的其他数据。 - 输入相关问题单管理详情,点 Continue。
- 预览问题单详情,点 Submit。