求教,对 Azure Kubernetes pod 的线程分析遇到问题
背景:
第一次上手kubernetes,在运行 kafka 流处理程序时,为了调试一个问题,想对正在运行的 pod 进行线程分析。
以下是步骤:
-
使用以下 docker 文件构建程序。
FROM mcr.microsoft.com/java/jdk:11-zulu-alpine RUN apk update && apk add --no-cache gcompat RUN addgroup -S user1 && adduser -S user1 -G user1 USER user1 WORKDIR . COPY target/my-application-1.0.0.0.jar .
-
使用以下部署 yaml 文件提交图像
apiVersion: apps/v1 kind: Deployment metadata: name: my-application-v1.0.0.0 spec: replicas: 1 selector: matchLabels: name: my-application-pod app: my-application-app template: metadata: name: my-application-pod 标签:名称:my-application-pod 应用程序:my-application-app 规范:nodeSelector:agentpool:agentpool1 容器:-名称:my-application-0 图像:myregistry.azurecr.io/my-application: v1.0.0.0 imagePullPolicy:始终命令:["java","-jar","my-application-1.0.0.0.jar","input1","$(connection_string)"] env: - name: connection_string valueFrom : configMapKeyRef: name: my-application-configmap key: connectionString resources: limits: cpu: "4" requests: cpu: "0.5"
-
要获取运行容器的 shell,您可以运行以下命令:
kubectl exec -it <POD_NAME> -- sh
-
在命令下运行线程堆栈分析
jstack PID > threadDump.tdump
请教大家,问题到底出在哪里?