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

时间:2017-05-04 17:28:16

标签: kubernetes monitoring 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的已知变通方法或最佳实践?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

Metric: kubernetes.io/container/restart_count
Resource type: k8s_container

答案 2 :(得分:0)

您可以通过以下操作手动实现:

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

resource.labels.project_id="<PROJECT_ID>"
resource.labels.cluster_name="<CLUSTER_NAME>"
resource.labels.namespace_name="<NAMESPACE, or default>"
jsonPayload.message:"Killing container"

2)通过单击过滤器输入上方的“创建指标”按钮并填充详细信息来创建指标。

3)您现在可以在Stackdriver中跟踪该指标。

很乐意得知内置指标而不是此指标。

答案 3 :(得分:-1)

请记住,如果可用选项不够,您可以随时提出feature request