VPC 集群: 为什么我的应用程序无法通过 Ingress 进行连接?
当无法通过 Ingress 访问您的应用时,请排查 VPC 集群中 Ingress 的连接问题。
虚拟私有云
您通过在 VPC 集群中为应用程序创建了一个 Ingress 资源,从而使该应用程序对外公开。 尝试使用 Ingress 子域连接到应用程序时,连接失败或超时。
创建 VPC 集群时,系统会在您的 VPC 中(位于集群外部)自动创建一个公共 VPC 负载均衡器和一个私有 VPC 负载均衡器。
VPC 负载均衡器将请求路由到路由器所暴露的应用程序。 在以下情况下,请求无法路由到您的应用:
- VPC 安全组正在阻止到工作程序节点的入局流量,包括到应用程序的入局请求。
- VPC 负载均衡器处于脱机状态,例如由于负载均衡器供应错误或 VSI 连接错误。
- VPC 负载均衡器已通过 VPC 控制台或 CLI 删除。
- VPC 负载均衡器的 DNS 条目仍在注册。
请验证是否没有 VPC 安全组阻止流向集群的流量,以及 VPC 负载均衡器是否可用。
-
安装
infrastructure-service插件。 用于运行命令的前缀是ibmcloud is。ibmcloud plugin install infrastructure-service -
请确认您的路由器对应的 VPC 负载均衡器是否存在。 在输出中,查找以
kube-crtmgr-<cluster_ID>开头的 VPC 负载均衡器 Name。 如果未安装infrastructure-service插件,请通过运行ibmcloud plugin install infrastructure-service来安装该插件。ibmcloud is load-balancers- 如果未列出 VPC 负载均衡器,说明已通过 VPC 控制台或 CLI 将其删除。 打开 IBM Cloud 支持案例 并包含集群标识。
-
如果存在负载均衡器,请 查看附加到它的 VPC 安全组。 确保您尚未对
kube-lbaas-<cluster-id>安全组进行任何修改,该安全组在创建时自动应用于 VPC ALB。- 如果已修改
kube-lbaas-<cluster-id>安全组,请在安全组中重新设置原始规则。 - 如果已除去
kube-lbaas-<cluster-id>安全组并将其替换为您管理的一个或多个安全组,请确保已设置的安全组允许到 ALB 的入站流量。 检查在 ALB 所使用的任何协议上是否允许到 NodePort 范围内的集群工作程序的出站流量为 30,000-32,767。 - 如果列出了 VPC 负载均衡器,并且您尚未修改附加到它的
kube-lbaas-<cluster-id>安全组,那么 DNS 条目可能仍在注册。 创建 VPC 负载均衡器时,将通过公共 DNS 注册主机名。 有时,该 DNS 条目需要几分钟才能复制到您的客户端所使用的特定 DNS 服务器上。 您可以等待主机名在 DNS 中完成注册,也可以使用 VPC 负载均衡器的其中一个 IP 地址直接访问 VPC 负载均衡器。 要查找 VPC 负载均衡器 IP 地址,请运行ibmcloud is lb <LB_ID>并查找 公共 IP 字段。 如果几分钟后仍无法连接到负载均衡器,可能是由于配置或连接问题导致其处于离线状态。 打开 IBM Cloud 支持案例。 对于“类型”,选择技术。 对于“类别”,请在 VPC 部分中选择网络。 在“描述”中,包含集群标识和 VPC 负载均衡器标识。
- 如果已修改