【问题标题】:How to write health check for graphql apis without http如何在没有 http 的情况下为 graphql apis 编写健康检查
【发布时间】:2022-01-10 02:05:34
【问题描述】:

我有一个 K8s 集群,其中有一个具有 Gjango + Graphql api 的 pod。

我需要编写一个运行状况检查作业,以确保我的 api 启动并运行。

我不想使用 http 样式的请求来检查健康状况。相反,我想使用 Django。 请指导我该怎么做?

【问题讨论】:

    标签: django kubernetes graphql


    【解决方案1】:

    对于 Kubernetes 中所谓的“Liveness Probes”,您有 2 个选项:

    • 命令
    • HTTP

    见:Configure Liveness, Readiness and Startup Probes

    Django 和 GraphQL 是基于 HTTP 的,因此您可能应该考虑使用 HTTP 探针。如果您的服务上没有特定的健康检查端点,您可以识别一个示例(应该始终有效)并将其用作健康检查。

    如果你想使用 HTTP 以外的东西,你唯一的选择是创建一些命令,当成功时返回 0 表示它是健康的,而当它不成功时返回其他值(通常是 1)表示它不健康。

    【讨论】:

    • 我不认为我理解这一点,但可能是我的问题不是自我解释的。所以我需要确保在 docker 容器内运行的 graphql 的健康状况。我不确定如何才能完成。
    • 我理解了这个问题。使用 Kubernetes 进行健康检查有 2 种选择。使用 HTTP 或使用一些(非 HTTP)二进制文件。由于 GraphQL 通常运行在 HTTP 上,我认为你应该使用 HTTP。如果您不想使用 HTTP,那么唯一的选择是使用命令(二进制)。您的 API 需要具有特定的运行状况检查端点(您可以查询以检查其是否存在),或者您必须使用 API 上的现有方法并将其用作运行状况检查的代理。请参阅我提供的链接,详细了解如何使用 Kubernetes 进行健康(活性)检查。
    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 2019-09-29
    • 2022-01-23
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多