如何通过GCP Logging查询获取GKE Deployment失败日志
如何通过GCP Logging查询K8S Deployment失败日志
优化现有审计日志查询
你当前的查询已经锁定了集群级的部署相关审计日志,但需要添加失败状态过滤条件来精准定位失败记录,以下是几种优化方案:
基于HTTP状态码过滤
审计日志通过protoPayload.status.code标记请求结果,非2xx状态码通常对应失败操作:
resource.type="k8s_cluster" AND log_id("cloudaudit.googleapis.com/activity") AND protoPayload.methodName:"deployments" AND protoPayload.status.code != 200
基于失败描述关键词过滤
如果状态码不够直观,可以通过protoPayload.status.message匹配包含失败关键词的日志:
resource.type="k8s_cluster" AND log_id("cloudaudit.googleapis.com/activity") AND protoPayload.methodName:"deployments" AND protoPayload.status.message:"Failed"
聚焦具体部署操作
若只需追踪创建或更新部署的失败日志,可精确匹配methodName:
resource.type="k8s_cluster" AND log_id("cloudaudit.googleapis.com/activity") AND (protoPayload.methodName="io.k8s.apps.v1.deployments.create" OR protoPayload.methodName="io.k8s.apps.v1.deployments.update") AND protoPayload.status.code != 200
补充其他日志来源获取详细失败原因
除了审计日志,还可以查询K8S核心组件的日志来获取更底层的失败细节:
- kube-controller-manager日志:查看部署控制器的执行报错
resource.type="k8s_node" AND log_id("kube-controller-manager") AND textPayload:"deployment" AND textPayload:"Failed"
- kube-apiserver日志:定位部署请求的API层面失败
resource.type="k8s_cluster" AND log_id("kube-apiserver") AND requestURI:"/apis/apps/v1/deployments" AND responseCode >= 400
内容的提问来源于stack exchange,提问作者Muthu
相关产品推荐
相关产品推荐

