2

通常,通过转到容器引擎 -> 集群 -> 命名空间 -> 应用程序名称(例如“postgres”),在 Stackdriver 上进行日志记录非常适合从 GKE 上的 Kubernetes 自动获取日志。

在 GKE 的 Kubernetes 默认命名空间中,我们有两组运行暂存和生产应用程序的 pod。这些日志中只有一个记录到 Stackdriver 上 pod 的默认应用程序名称。

两个截断的 postgres 部署配置的片段:

生产

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres spec: replicas: 1 template: metadata: labels: app: database-production track: production spec: containers: - name: postgres image: postgres

分期

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres-staging spec: replicas: 1 template: metadata: labels: app: database-staging track: staging spec: containers: - name: postgres-staging image: postgres

这些日志中只有一个记录postgres在 Stackdriver 中,另一个根本不会出现。我尝试更改部署的容器名称但没有任何效果。唯一可行的方法是将整个应用程序托管在另一个命名空间下,但Kubernetes 文档建议不要使用命名空间,除非应用程序很大

有什么方法可以通过 Kubernetes 部署配置具体定义 Stackdriver Logging / GKE 如何命名日志?

4

0 回答 0