对于具有 NSX 后端故障的每个 Kubernetes 资源对象,会创建一个包含错误信息的 NSXError 对象。还有一个包含所有群集范围错误的错误对象。

默认情况下,不启用此功能。要启用,必须在安装 NCP 时在 ncp.ini 中将 enable_nsx_err_crd 设置为 True

注: 不得创建、更新或删除 NSXError 对象。

用于显示 NSXError 对象的命令:

  • kubectl get nsxerrors

    列出所有 NSXError 对象。

  • kubectl get nsxerrors -l error-object-type=<type of resource>

    列出与特定类型的 Kubernetes 对象相关的 NSXError 对象,例如类型为 services 的对象。

  • kubectl get nsxerrors <nsxerror name> -o yaml

    显示 NSXError 对象的详细信息。

  • kubectl get svc <service name> -o yaml | grep nsxerror

    查找与特定服务关联的 NSXError。

显示 NSXError 对象的详细信息时,规范部分包含以下重要信息。例如,
error-object-id: default.svc-1
error-object-name: svc-1
error-object-ns: default
error-object-type: services
message:
- '[2019-01-21 20:25:36]23705: Number of pool members requested exceed LoadBalancerlimit'

在此示例中,命名空间为 default。服务的名称为 svc-1。Kubernetes 资源的类型为 services

在此版本中,NSXError 对象支持以下错误。
  • 由于存在 NSX Edge 限制,自动缩放无法分配额外的负载平衡器。
  • 负载平衡器虚拟服务器的数量超过限制(未启用自动缩放)。
  • 负载平衡器服务器池的数量超过限制。
  • 负载平衡器服务器池成员的数量超过负载平衡器限制或 NSX Edge 限制。
  • 在处理 LoadBalancer 类型服务时,浮动 IP 地址已用尽。