gpt4 book ai didi

node.js - 如何为非服务器的 node.js 容器创建 livenessprobe?

转载 作者:行者123 更新时间:2023-12-01 13:13:13 25 4
gpt4 key购买 nike

我必须为 kubernetes 中的 node.js 容器 (docker) 创建就绪和活跃度探测器。我的问题是容器不是服务器,所以我不能使用 http 请求来查看它是否处于事件状态。

我的容器运行 node-cron 进程,每 12 小时下载一些 csv 文件,解析它们并将结果插入到 elasticsearch 中。

我知道我可以添加 express.js 但我宁愿不这样做只是为了一个探针。

我的问题是:

  • 有没有办法使用某种 liveness command probe ?如果可能,我可以使用什么命令?
  • 在容器内,我让 pm2 运行进程。我可以以任何方式将它用于我的探针,如果可以,如何使用?
  • 最佳答案

    活性命令

    您可以按照描述使用 Liveness command 。但是,我建议为 Kubernetes 设计您的工作/任务。

    Kubernetes 设计

    My container runs a node-cron process that download some csv file every 12 h, parse them and insert the result in elasticsearch.



    您的作业执行频率不高,如果您将其部署为服务,它将 一直占用资源 。当你写下你想在你的过程中使用 pm2 时,我会推荐另一种设计。据我了解,PM2 是一个进程管理器,但 Kubernetes 在某种程度上也是一个进程管理器。

    Kubernetes 原生 CronJob

    不是使用 pm2 处理进程,而是将 进程 实现为 容器镜像 并使用 Kubernetes CronJob 安排您的工作/任务,您可以在 jobTemplate 中指定 镜像 。使用这种设计,您没有任何 livenessProbe 但如果失败,您的任务将重新启动,例如由于网络问题,无法将结果插入到 elasticSearch。

    关于node.js - 如何为非服务器的 node.js 容器创建 livenessprobe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58648639/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com