有没有办法监控pod状态并使用Stackdriver重新启动在GKE集群中运行的pod的数量?
虽然我可以看到Stackdriver中所有pod的CPU,内存和磁盘使用情况指标,但似乎没有办法获得有关因崩溃而重启的副本集中的pod或pod崩溃的指标。
我正在使用Kubernetes副本集来管理pod,因此它们会在重新生成时重新生成并在崩溃时使用新名称创建。据我所知,Stackdriver中的指标由pod-name(在pod的生命周期中是唯一的)显示,这听起来并不合理。
警告pod故障听起来像是一件很自然的事情,听起来很难相信目前不支持这种情况。我从Stackdriver for Google Container Engine获得的监控和警报功能似乎毫无用处,因为它们都绑定到了生命周期非常短的pod。
因此,如果这不起作用,是否有关于如何监控持续崩溃的pod的已知变通方法或最佳实践?
答案 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。