如何通过Stackdriver跟踪Google Container Engine服务及集群Pod可用性?
解决Stackdriver(Cloud Monitoring)细粒度跟踪K8s服务容器的资源组配置问题
我之前配置Cloud Monitoring(原Stackdriver)资源组时也踩过标签的坑,给你理清楚具体的操作逻辑和步骤,帮你精准创建跟踪服务容器的资源组:
先搞懂K8s资源对应的内置标签
Cloud Monitoring会自动给K8s的Pod/Service/Container资源添加标准化的内置标签,你不用手动定义,直接用这些标签过滤就行,常见的关键标签:
k8s.io/pod/name: 对应Kubernetes Pod的名称k8s.io/service/name: 对应Kubernetes Service的名称k8s.io/container/image: 对应容器使用的镜像名称k8s.io/namespace/name: 对应资源所在的Kubernetes命名空间
你之前疑惑的“name”标签其实是个泛称,不同资源类型的“name”标签含义不一样,所以一定要用上面这些带前缀的精准标签,避免混淆。
创建跟踪服务容器的资源组步骤
- 打开Cloud Monitoring控制台,导航到资源 > 资源组页面
- 点击「创建资源组」,选择「基于标签和过滤器」的创建方式
- 在资源类型选择框里,选Kubernetes Container(如果要跟踪整个Pod就选Kubernetes Pod,按需选择)
- 添加过滤条件,举几个常用的场景:
- 跟踪某个命名空间下的特定服务容器:
- 添加过滤器:
k8s.io/namespace/name→ 等于 →你的命名空间名称 - 再添加过滤器:
k8s.io/service/name→ 等于 →你的服务名称
- 添加过滤器:
- 跟踪特定镜像的所有容器:
- 添加过滤器:
k8s.io/container/image→ 包含 →你的镜像名(比如my-app:v1)
- 添加过滤器:
- 跟踪某个命名空间下的特定服务容器:
- 点击「预览」,确认匹配到的资源是你要跟踪的容器/Pod,没问题的话给资源组起个清晰的名字(比如“prod-my-service-containers”),然后保存
额外小技巧
- 如果你不确定某个资源有哪些标签,可以先去资源 > 资源清单,找到对应的K8s资源,查看它的标签详情,所有Cloud Monitoring注入的标签都会列在这里
- 资源组创建后,你可以在告警策略、自定义仪表盘里直接选择这个资源组,针对性地监控它的可用性指标(比如容器重启次数、Pod就绪状态、Service端点可达性等)
内容的提问来源于stack exchange,提问作者moberemk
相关产品推荐
相关产品推荐

