kubernetes - 无法通过 google kubernetes 集群中的堆栈驱动程序调试 java 应用程序

标签 kubernetes google-kubernetes-engine stackdriver google-cloud-stackdriver google-cloud-debugger

我正在尝试通过堆栈驱动程序在 GKE 集群上调试 Java 应用程序。 我创建了一个 GKE 集群,其中允许完全访问所有 Cloud API 我正在关注文档:https://cloud.google.com/debugger/docs/setup/java

这是我的 DockerFile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} alnt-watchlist-microservice.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/alnt-watchlist-microservice.jar"]

在文档中,它被编写为在 DockeFile 中添加以下行:

RUN  mkdir /opt/cdbg && \
     wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
     tar xvz -C /opt/cdbg

RUN java -agentpath:/opt/cdbg/cdbg_java_agent.so 
    -Dcom.google.cdbg.module=tpm-watchlist
    -Dcom.google.cdbg.version=v1
    -jar /alnt-watchlist-microservice.jar

当我构建 DockerFile 时,它​​失败说 tar: invalid magic , tar: Short read。

在 stackdriver 调试控制台中,它始终显示“未找到已部署的应用程序”。它将显示哪个应用程序?我已经在我的 kubernetes 集群上部署了 2 个服务。

我已经执行了 gcloud 调试源 gen-repo-info-file --output-directory="WEB-INF/classes/ 在我的项目目录中。

它生成了source-context.json。创建后,我尝试构建 docker 镜像,但失败了。

最佳答案

当您部署容器化应用程序时,调试器将可供使用。您收到未找到已部署的应用程序错误,因为您的调试器代理无法在 dockerfile 中下载或解压缩。

请查看this discussion解决 tar: invalid magic 、 tar: Short read. 错误。

关于kubernetes - 无法通过 google kubernetes 集群中的堆栈驱动程序调试 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765251/

相关文章:

kubernetes - GKE 集群无法从同一项目中的 GCR 注册表中提取 (ErrImagePull) (GitLab Kubernetes 集成) : Why?

kubernetes - 具有入口的 Kubernetes 上的 Hyperledger Fabric

kubernetes - 在 GKE 中使用独立的 'gsutil'

kubernetes - GKE群集不受StackDriver监视

google-cloud-platform - GCP 监控无法从 asia-southeast1-b 获取指标

amazon-web-services - 为 AWS 设置 "Stackdriver Kubernetes Monitoring"

docker - 为什么 cap_net_bind_service 在这个 nginx 嵌套 Docker 容器中不起作用?

kubernetes - 是否可以在 Kubernetes 中进行滚动更新并保留相同版本?

linux - 如何在具有完全访问权限的 Linux 实例上将 Google Bucket 挂载为本地磁盘

从 Kubernetes pod 中的 Google Cloud Endpoints 登录到 Stackdriver