繁体   English   中英

如何查看日志是来自在 Jenkins Kubernetes 容器上运行的 Java 应用程序的 Stackdriver

[英]How to see logs is Stackdriver from Java application run on Jenkins Kubernetes container

我创建了一个 Jenkins 管道,并在 GKE 上运行它(使用 Kubernetes 插件)。 在其中一个步骤中,我在其中一个容器中运行 java 应用程序。 应用程序正在将日志写入标准输出。 我想在 Stackdriver 中查看此应用程序的日志。 我怎样才能实现它? 目前我无法在 Stackdriver 和 Jenkins 日志中看到这些日志。

我的管道:

podTemplate(cloud: 'kubernetes',
        yaml: """
apiVersion: v1
kind: Pod
spec:
  securityContext:
    runAsUser: 0
  containers:
  - name: maven
    image: maven:3.6.3-jdk-11
    resources:
      requests:
        cpu: "1"
        memory: "1Gi"
        ephemeral-storage: "20Mi"
      limits:
        cpu: "2"
        memory: "4Gi"
        ephemeral-storage: "1Gi"
    command:
    - cat
    tty: true
"""
) {
    node(POD_LABEL) {
        stage('Run app') {
            container('maven') {
                sh "java -jar my-app.jar &"
            }
        }
    }
}

=== 编辑 ===

我的主 Jenkins 安装在其中一个 GKE Pod 上,每个 PR 验证都会触发另一个具有上述容器和 Java 应用程序的 Pod。 看起来 jenkins 从代理正在收集日志(但没有将它们附加到构建日志,因为 java 应用程序在后台运行)。

如果您已经在 GCP 实例上运行 Jenkin,那么将非常简单,直接将日志获取到 Stackdriver。

https://faun.pub/jenkins-on-google-compute-engine-611bd86e295b

您还可以将 Agent 与 java 集成

参考: https : //medium.com/google-cloud/java-logging-on-cloud-run-with-stackdriver-9786d6fdbe17

您还应该使用Bluemedora结帐

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM