Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
聚合Kubernetes活性探针响应_Kubernetes_Kubernetes Pod - Fatal编程技术网

聚合Kubernetes活性探针响应

聚合Kubernetes活性探针响应,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我的应用程序有一个/healthHttp端点,为Kubernetes liveness check probe配置。API返回一个json,其中包含运行状况指示器 Kubernetes只关心返回的http状态,但我想将json响应存储在Prometheus中,以便于监控 一旦Kubernetes调用API,是否可以捕获响应?我不想将该功能添加到应用程序本身,而是使用外部组件 推荐的方法是什么?回答您的问题: 制作一个侧车,每隔N秒调用localhost:port/health,并存储最近的回复N

我的应用程序有一个
/health
Http端点,为Kubernetes liveness check probe配置。API返回一个json,其中包含运行状况指示器

Kubernetes只关心返回的http状态,但我想将json响应存储在Prometheus中,以便于监控

一旦Kubernetes调用API,是否可以捕获响应?我不想将该功能添加到应用程序本身,而是使用外部组件


推荐的方法是什么?

回答您的问题:

  • 制作一个侧车,每隔
    N
    秒调用
    localhost:port/health
    ,并存储最近的回复
    N
    应等于普罗米修斯刮削间隔,以获得准确的结果

  • 然后,一个侧车在pod的一个单独端口上以metric的形式在
    /metrics
    端点中公开最新的回复。你可以用它来实现侧车。普罗米修斯出口商侧车实际上是一个广泛使用的模式,尝试寻找它

  • 将普罗米修斯指向服务
    /metrics
    端点,该端点现在由一个单独端口上的侧车提供服务。在
    服务
    对象中需要一个单独的端口,以指向您的侧车端口。在此阶段可以调整刮片间隔,使其与
    N
    同步,否则,只需调整
    N
    。有关刮除配置的详细信息,请参阅:

    如果您需要一个自动普罗米修斯目标发现,假设您有一系列这样的部署,它们的数量各不相同-请参阅我最近的回答:

  • 提出更简单的解决方案:

  • 在应用程序中,确保将返回的所有内容记录在
    /health
  • 实现集中式日志记录(日志聚合):
  • 使用日志处理器(如ELK)查询/分析结果

  • 谢谢,这些都是非常好的建议,但是,我想避免调用API超过需要。由于Kubernetes也调用了API,我想捕捉这个事件——不确定这是否可行,也不确定Kubernetes是否以任何方式支持我认为这个答案仍然是实际的:小心提高Kubernet的日志级别,因为它将应用于集群上运行的所有内容,而不仅仅是这个应用程序——日志数量可能会非常巨大。流行的日志采集器通常直接收集kubelet日志,请参阅(
    systemdUnit
    variable)