VPC 集群: 为什么我的应用程序无法通过负载均衡器进行连接?
当无法通过 VPC 负载均衡器服务访问您的应用时,请排查 VPC 负载均衡器的连接问题。
基础架构提供者:VPC
您通过在 VPC 集群中创建一个 Kubernetes LoadBalancer 服务,将您的应用对外公开。 尝试使用分配给 Kubernetes LoadBalancer 的主机名来连接到应用程序时,连接失败或超时。
运行 oc describe svc <kubernetes_lb_service_name> 时,您可能会在 “事件” 部分看到类似以下内容的警告消息:
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service is offline.
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service was deleted from your VPC.
在集群中创建 Kubernetes LoadBalancer 服务时,将在 VPC 中自动创建 VPC 负载均衡器。 VPC 负载均衡器仅将请求路由到 Kubernetes LoadBalancer 服务公开的应用程序。
在以下情况下,请求无法路由到您的应用:
- VPC 安全组正在阻止到工作程序节点的入局流量,包括到应用程序的入局请求。
- VPC 负载均衡器处于脱机状态,例如由于负载均衡器供应错误或 VSI 连接错误。
- VPC 负载均衡器已通过 VPC 控制台或 CLI 删除。
- VPC 负载均衡器的 DNS 条目仍在注册。
- 您已达到每个帐户允许的最大 VPC 负载均衡器数。 请查看 VPC 配额文档,以了解 VPC 中所有 VPC 集群的 VPC 资源配额。
请验证是否没有 VPC 安全组阻止流向集群的流量,以及 VPC 负载均衡器是否可用。
-
验证 Kubernetes
LoadBalancer服务的 VPC 负载均衡器是否存在。 在输出结果中,查找格式为kube-<cluster_ID>-<kubernetes_lb_service_UID>的VPC负载均衡器。 您可以通过运行oc get svc <service_name> -o yaml来获取 KubernetesLoadBalancer服务的UID。ibmcloud is load-balancers- 如果未列出 VPC 负载均衡器,那么由于下列其中一个原因,该负载均衡器不存在:
- 您已达到每个帐户允许的最大 VPC 负载均衡器数。 在您的 VPC 中的所有 VPC 集群中,最多可创建 20 个 VPC 负载均衡器。 将为创建的每个 Kubernetes
LoadBalancer服务创建一个 VPC 负载均衡器,VPC 负载均衡器仅将请求路由到对应的 KubernetesLoadBalancer服务。 - 该 VPC 负载均衡器已通过 VPC 控制台或 CLI 被删除。 要为您的 Kubernetes
LoadBalancer服务重新创建 VPC 负载均衡器,请通过运行ibmcloud oc cluster master refresh --cluster <cluster_name_or_id>来重启 Kubernetes 主节点。
如果您想删除 VPC 集群中某个应用的负载均衡配置,请运行
oc delete svc <kubernetes_lb_service_name>命令,删除 KubernetesLoadBalancer服务。 与 KubernetesLoadBalancer服务关联的 VPC 负载均衡器会自动从 VPC 中删除。 -
如果存在负载均衡器,请 查看附加到它的 VPC 安全组。 如果对自动附加到负载均衡器的
kube-lbaas-<cluster-id>安全组进行了任何修改,请在安全组中重新设置原始规则。- 如果列出了 VPC 负载均衡器,并且您尚未修改任何已连接的安全组,那么可能由于以下原因而无法响应:
- 其 DNS 条目可能仍在注册。 创建 VPC 负载均衡器时,将通过公共 DNS 注册主机名。 有时,该 DNS 条目需要几分钟才能同步到您的客户端所使用的特定 DNS 服务器上。 您可以等待主机名在 DNS 中完成注册,也可以使用 VPC 负载均衡器的其中一个 IP 地址直接访问 VPC 负载均衡器。 要查找 VPC 负载均衡器 IP 地址,请运行
ibmcloud is lb <LB_ID>并查找 公共 IP 字段。 - 如果几分钟后仍无法连接到负载均衡器,可能是由于配置或连接问题导致其处于离线状态。 打开 IBM Cloud 支持案例。 对于“类型”,选择技术。 对于“类别”,请在 VPC 部分中选择网络。 在“描述”中,包含集群标识和 VPC 负载均衡器标识。
- 其 DNS 条目可能仍在注册。 创建 VPC 负载均衡器时,将通过公共 DNS 注册主机名。 有时,该 DNS 条目需要几分钟才能同步到您的客户端所使用的特定 DNS 服务器上。 您可以等待主机名在 DNS 中完成注册,也可以使用 VPC 负载均衡器的其中一个 IP 地址直接访问 VPC 负载均衡器。 要查找 VPC 负载均衡器 IP 地址,请运行
- 如果列出了 VPC 负载均衡器,并且您尚未修改任何已连接的安全组,那么可能由于以下原因而无法响应: