【发布时间】:2021-01-29 19:58:26
【问题描述】:
使用 Google Stackdriver 时,我可以使用日志查询来找到我正在寻找的确切日志语句。
这可能看起来像这样:
resource.type="k8s_container"
resource.labels.project_id="my-project"
resource.labels.location="europe-west3-a"
resource.labels.cluster_name="my-cluster"
resource.labels.namespace_name="dev"
resource.labels.pod_name="my-app-pod-7f6cf95b6c-nkkbm"
resource.labels.container_name="container"
但是,正如您在此查询参数 resource.labels.pod_name="my-app-pod-7f6cf95b6c-nkkbm" 中看到的那样,我正在寻找一个 ID 为 7f6cf95b6c-nkkbm 的 pod。因此,我无法将这个 Stackdriver 视图与这个确切的查询一起使用 if 我部署了 my-app 的新修订版,因此有一个新 ID 并且当前查询中的 ID 变为 invalid em> 或无法定位。
现在我并不总是想在每次想要查看我的my-app 日志的当前视图时都查找新 ID。所以我尝试在我的 Kubernetes YAML 文件中添加一个特殊的标签 stackdriver: my-app。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
template:
metadata:
labels:
stackdriver: my-app <<<
重新访问我新部署的 Pod,我可以确定标签 stackdriver: my-app 确实存在。
现在我想添加这个新标签以用作查询参数:
resource.type="k8s_container"
resource.labels.project_id="my-project"
resource.labels.location="europe-west3-a"
resource.labels.cluster_name="my-cluster"
resource.labels.namespace_name="dev"
resource.labels.pod_name="my-app-pod-7f6cf95b6c-nkkbm"
resource.labels.container_name="container"
resource.labels.stackdriver=my-app <<< the kubernetes label
你可以猜到这不起作用,否则我没有理由写这个问题;) 知道我要做的事情是如何实现的吗?
【问题讨论】:
标签: kubernetes google-cloud-platform yaml google-kubernetes-engine google-cloud-stackdriver