GCP kubernetes-入口报告:所有后端服务均处于不健康状态

时间:2020-07-16 21:46:16

标签: kubernetes google-cloud-platform google-kubernetes-engine

我是K8的新手,但不是那么新,以至于我没有几个正在运行的堆栈,甚至还没有生产现场:)

我在新部署中注意到如下所示的入口:

Type: Ingress
Load balancer: External HTTP(S) LB

正在报告All backend services are in UNHEALTHY state,这很奇怪,因为该服务正在运行,并且已经/已经为其提供了流量一周。

现在,更仔细地检查Backend services: k8s-be-32460--etcetc是令人不快的。因此,使用GUI,我单击了该按钮。

然后我开始看到带有面向亚洲,欧洲和美洲的渠道的前端。这似乎使所有通往欧洲的交通都集中在了一起。大概,这对于分布式外部负载均衡器服务(根据文档)是正常的,并且我的集群位于欧洲。凉。除了...

k8s-ig--etcetc   europe-west1-b   1 of 3 instances healthy
您说的3个实例中有1个是

?嗯? 这是到目前为止我所了解的。谁能照亮?

Edit:

好,因此报告为不正常的节点之一实际上是default-node-pool中的一个节点。现在,我已缩小到0个节点,因为据我所知,首选是显式管理它们。只剩下2个节点。尽管入口处在同一区域,但其中1个入口不健康。

以某种方式进一步挖掘它正在GUI中报告只有一个实例组实例运行状况良好。但是这些实例是由GCP自动创建的,我不对其进行管理。

有什么想法吗?

Edit 2:

我一直遵循正确的方法,通过SSH到达实例组中的每个VM,并在每个节点上执行运行状况检查。确实确实失败了。

一条简单的curl localhost:32460仅一条路线而另一条路线没有。如图所示,虽然在32460上有监听的声音

tcp6       0      0 :::32460                :::*       LISTEN      - 

健康检查为HTTP / 32460

任何想法为何单个节点都将停止工作。就像我说的那样,我不了解如何配置此基础VM。

现在想知道这是否只是某种简单的路由问题,但在这一点上却非常复杂。

1 个答案:

答案 0 :(得分:0)

这对我有用:

就我而言,我暴露了一个 API,这个 API 没有默认路由,也就是说,如果我输入 myIp,它会返回 404 错误(未找到)。所以,我做了一个测试,并在我的 Startup.cs 上放置了一个“默认”路由,如下所示:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hola mundillo");
                });
                endpoints.MapControllers();
            });

然后,状态从不健康变为正常。也许这不是一个明确的解决方案,但也许,它可以帮助某人找到错误。