监控和警告pod状态或使用Google Container Engine(GKE)和Stackdriver重新启动

cta*_*van 12 monitoring kubernetes google-kubernetes-engine stackdriver google-cloud-stackdriver

有没有办法监控pod状态并使用Stackdriver重新启动在GKE集群中运行的pod的数量?

虽然我可以看到Stackdriver中所有pod的CPU,内存和磁盘使用情况指标,但似乎没有办法获得有关由于崩溃而重新启动副本集中的pod或pod的崩溃的指标.

我正在使用Kubernetes副本集来管理pod,因此它们会在重新生成时重新生成并在崩溃时使用新名称创建.据我所知,Stackdriver中的指标由pod-name(在pod的生命周期中是唯一的)显示,这听起来并不合理.

警告pod故障听起来像是一件很自然的事情,听起来很难相信目前还不支持.我从Stackdriver for Google Container Engine获得的监控和警报功能似乎相当无用,因为它们都绑定到了生命周期非常短的pod.

因此,如果这不起作用,那么有关于如何监控持续崩溃的pod的已知变通方法或最佳实践吗?

小智 5

在我的集群(裸机 k8s 集群)\xef\xbc\x8c 中,我使用 kube-state-metrics https://github.com/kubernetes/kube-state-metrics来执行你想要的操作。这个项目属于kubernetes repo,非常容易使用。部署后,您可以使用 kube_pod_container_status_restarts 这个指标来了解容器是否重新启动

\n


Jon*_*Lin 5

您可以使用以下方法手动实现此目的:

  1. 在日志查看器中,创建以下过滤器:

    resource.labels.project_id="<PROJECT_ID>"
    resource.labels.cluster_name="<CLUSTER_NAME>"
    resource.labels.namespace_name="<NAMESPACE, or default>"
    jsonPayload.message:"failed liveness probe"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过单击过滤器输入上方的“创建指标”按钮并填写详细信息来创建指标。

  3. 您现在可以在 Stackdriver 中跟踪此指标。

很高兴被告知内置指标而不是这个。


dan*_*ter 5

现在有一个内置指标,因此无需设置自定义指标即可轻松进行仪表板和/或警报

Metric: kubernetes.io/container/restart_count
Resource type: k8s_container
Run Code Online (Sandbox Code Playgroud)