如果 Antrea 容器集群的状态为“已关闭”,请按照本文档中的步骤确定此问题的原因并从中恢复,或者收集相应支持包。
问题
集群控制平面节点已关闭。Antrea 容器集群与中央控制平面 (CCP) 断开连接。
原因
在 NSX Manager UI 中,导航到。如有需要,可以在 Antrea 页面上使用外部 ID 字段筛选集群列表。
单击问题集群的
状态列。如果所有组件均已关闭,则可能的原因如下:
- Kubernetes 集群已删除。
- CCP 存在网络连接问题。
- 适配器由于某种原因崩溃或被删除。
- 适配器的客户端证书不正确。
- 适配器的版本与 CCP 不兼容。
如果只有中央控制平面适配器关闭,则可能是因为 CCP 适配器崩溃。
解决方案
- 如果 Kubernetes 集群已删除,请清理 NSX 中遗留的注册数据和清单数据。请参见从 NSX 中清理 Antrea 数据。
- 获取容器集群的 kubectl 和 kubeconfig 访问权限。使用 kubectl 检索正在运行 interworking Pod 的节点名称。启动与节点的 SSH 会话,并使用 curl 或 nc 命令连接到端口 1234 和 1235 上的每个 NSX Manager IP。如果无法建立连接,则原因是 CCP 存在网络连接问题。
curl 命令示例:
确保将 NSX-Manager-IP 替换为环境中 NSX Manager 的 IP 地址。
curl -v NSX-Manager-IP:1235
Trying NSX-Manager-IP...
Connected to NSX-Manager-IP (NSX-Manager-IP) port 1235 (#0)
...
Empty reply from server
Connection #0 to host NSX-Manager-IP left intact
curl: (52) Empty reply from server
nc 命令示例:
nc -v NSX-Manager-IP 1235 < /dev/null
Ncat: Version 7.50 (https://nmap.org/ncat)
Ncat: Connected to NSX-Manager-IP:1235.
Ncat: 0 bytes sent, 0 bytes received in 0.37 seconds.
- 使用 kubectl 检查 vmware-system-antrea 命名空间中 interworking Pod 的所有容器是否均已启动。
如果有任何容器关闭,请使用 kubectl 获取崩溃容器的日志并查看相应错误消息。此步骤可帮助您识别由以下任一原因造成的故障:
- 适配器由于某种原因崩溃或被删除。
- CCP 适配器崩溃。
用于获取 interworking Pod 的 kubectl 命令示例:
kubectl get pod -o wide -l app=antrea-interworking -n vmware-system-antrea
记下 interworking Pod 名称。
用于获取 interworking Pod 详细状态的 kubectl 命令示例:
确保将 pod-name 替换为实际的 Pod 名称。
kubectl get pod -o yaml pod-name -n vmware-system-antrea
用于获取容器日志的 kubectl 命令示例:
确保将 pod-name 替换为实际的 Pod 名称。
kubectl logs pod-name -c mp-adapter -n vmware-system-antrea > mp-adapter.log
kubectl logs pod-name -c ccp-adapter -n vmware-system-antrea > ccp-adapter.log
kubectl logs pod-name -c tn-proxy -n vmware-system-antrea > tn-proxy.log
kubectl logs pod-name -c election-runner -n vmware-system-antrea > election-runner.log
如果缺少 vmware-system-antrea 命名空间或缺少 interworking Pod,则可能是在未运行注销步骤的情况下从 Kubernetes 集群中删除了适配器。您可以清理系统中遗留的注册数据和清单,然后重新注册 Kubernetes 集群。重新注册集群后,集群 ID 将有所不同。如果对集群应用了任何 Antrea 策略,则必须在重新注册集群后再次应用该策略。
有关清理遗留注册数据的说明,请参见从 NSX 中清理 Antrea 数据。
有关将 Antrea 容器集群注册到 NSX 的说明,请参见向 NSX 注册 Antrea 容器集群。
- 使用 kubectl 从 interworking Pod 中获取 nsx-proxy 容器日志,然后查看相应错误消息。
此步骤可帮助您识别由以下任一原因造成的故障:
- 适配器的客户端证书不正确。
- 适配器的版本与 CCP 不兼容。
相关命令示例,请参见步骤 3。
- 如果管理平面适配器已启动,请使用 NSX 中的支持包功能收集容器集群的日志文件。