1.29. Submariner add-on 状态降级的故障排除
将 Submariner add-on 添加到集群集中的集群后,Connection status, Agent status, 和 Gateway nodes 会显示集群的意外状态。
1.29.1. 症状: Submariner 附加组件状态为 degraded
将 Submariner add-on 添加到集群中,在 Gateway nodes, Agent status, 和 Connection status 中显示以下状态:
带有标签的网关节点
-
Progressing
: 标记网关节点的进程已启动。。 -
Nodes not labeled
: 网关节点没有标记,可能因为标记它们的进程还没有完成。 -
Nodes not labeled
: 网关节点尚未标记,可能会因为进程正在等待另一个进程完成。 - Nodes labeled: 网关节点已标记。
-
代理状态
- progressing: Submariner 代理的安装已启动。
- degraded: Submariner 代理没有运行,可能会因为它仍在进行中。
连接状态
- progressing:在 Submariner add-on 启动时建立连接的过程。
-
degraded:连接未就绪。如果您刚才安装了附加组件,则进程可能仍在进行中。如果在连接已经建立并运行后,有两个集群丢失了相互的连接。当有多个集群时,如果任何集群处于断开连接状态,则所有集群都会显示一个
Degraded
状态。
它还会显示哪些集群已连接,以及哪些集群处于断开连接状态。
1.29.2. 解决问题: Submariner 附加组件状态为 degraded
- 当流程完成时,降级状态通常会自行解决。您可以点击表中的状态来查看进程的当前步骤。您可以使用这些信息来确定该过程是否完成,并且需要执行其他故障排除步骤。
对于无法解决问题的问题,请完成以下步骤以排除这个问题:
您可以使用带有
subctl
程序的diagnose
命令,在存在以下条件时在 Submariner 连接上运行一些测试:-
Agent 状态 或 Connection 状态 处于
Degraded
状态。diagnose
命令提供有关此问题的详细分析。 控制台中都不是绿色的,但网络连接无法正常工作。
diagnose
命令有助于确认控制台外没有其他连接或部署问题。最好在任何部署之后运行diagnose
命令来识别问题如需有关如何运行命令的更多信息,请参阅 Submariner 中的
diagnose
。
-
Agent 状态 或 Connection 状态 处于
如果问题继续处于
Connection 状态
,您可以先运行subctl
工具的diagnose
诊断命令来获取两个 Submariner 集群之间的连接的详细状态。该命令的格式是:subctl diagnose all --kubeconfig <path-to-kubeconfig-file>
使用
kubeconfig
文件的路径替换path-to-kubeconfig-file
。有关命令的更多信息,请参阅 Submariner 文档中的diagnose
部分。检查防火墙设置。有时候,连接的问题是由防止集群进行通信的防火墙权限问题造成的。这可能导致
Connection 状态
显示为 degraded。运行以下命令检查防火墙问题:subctl diagnose firewall inter-cluster <path-to-local-kubeconfig> <path-to-remote-cluster-kubeconfig>
将
path-to-local-kubeconfig
替换为一个集群的kubeconfig
文件的路径。将
path-to-remote-kubeconfig
替换为其他集群的kubeconfig
文件的路径。您可以运行subctl
工具程序的verify
命令来测试两个 Submariner 集群间的连接。该命令的基本格式为:如果问题继续,并处于
Connection 状态
,您可以使用subctl
工具运行verify
命令以测试两个 Submariner 集群之间的连接。该命令的基本格式为:subctl verify --kubecontexts <cluster1>,<cluster2> [flags]
将
cluster1
和cluster2
替换为您要测试的集群的名称。有关该命令的更多信息,请参阅 Submariner 文档中的验证
。在故障排除步骤解决此问题后,使用
benchmark
命令和subctl
工具建立一个基础,以便在您运行其他诊断时进行比较。有关该命令选项的更多信息,请参阅 Submariner 文档中的
基准
部分。