【发布时间】:2020-01-17 06:27:15
【问题描述】:
我在 Kubernetes(谷歌云)上部署了一个应用程序。要使部署正常运行,它需要向“/healthz”和“/”返回 200 状态响应。我在我的 Express 服务器上设置了这个作为返回响应的路由,如下所示:
app.use('/healthz', ((_req, res) => {
logGeneral.info("Health Status check called.");
res.sendStatus(200);
}));
但我不知道如何对在 Next.js / React 上运行的前端做同样的事情。不支持 res.send 等命令。
有人知道吗?
谢谢。
【问题讨论】:
-
您尝试过简单的页面吗?主页,登录?只要它是一个返回 200 的有效 url,它应该可以工作。
-
我让它在“/”和“/healthz”路由上工作,但这并不好,因为客户端访问“/”基本路由,看到 200 状态代码出现很奇怪而不是网站。
-
您知道如果您的网站正常运行,它会返回一个 200 HTTP 代码吗?否则,您将无法导航;)
-
Kubernetes 要求我创建 2 个端点,专门用于返回 200 信号。我使用原始帖子中显示的代码为快速服务器执行此操作。但是对于 Next.js,我必须创建 2 个页面,一个索引和一个 Healthz,这样我才能在每个页面上返回一个 200 信号。没有这个,它就行不通。我是不是在这里漏掉了什么,我很困惑哈哈。
-
健康状态页面用于准备就绪和活跃度探测,两者之一仅在 pod 开始时处于活动状态,liveliness pod 在这里确保您的应用程序仍在响应,以防万一是不是 pod 会重新启动。如果您可以对这些页面进行编码,您可以为这些检查提供任何您想要的路径,但在某些情况下,您不能。一些应用程序没有提供可用的自定义路径,在这种情况下,任何必要的页面都可以用来假设它已经启动。
标签: reactjs kubernetes google-cloud-platform next.js