如何在GKE(Google Kubernetes Engine)中查询访问npm生成的日志文件?
问题解答
如何获取容器内的npm debug日志
你看到的日志路径/root/.npm/_logs/2021-10-27T11_26_28_534Z-debug.log存储在对应崩溃Pod的容器本地文件系统中,默认不会被采集到Cloud Logging,可按以下步骤获取:
- 先配置gcloud CLI访问权限,依次执行以下命令:
- 切换到对应GCP项目:
gcloud config set project [你的项目ID] - 获取GKE集群访问凭证:
gcloud container clusters get-credentials cluster-1 --zone europe-west3-a
- 切换到对应GCP项目:
- 检查目标Pod状态:执行
kubectl get pods -n production | grep client-depl-7f679c6b49-5d9tz- 若Pod处于Running/CrashLoopBackOff状态,可直接进入容器读取日志:
kubectl exec -it client-depl-7f679c6b49-5d9tz -n production -c client -- cat /root/.npm/_logs/2021-10-27T11_26_28_534Z-debug.log - 若Pod已经被重建销毁,无法再找回该文件,建议后续配置将npm日志目录挂载到持久化存储,或配置sidecar采集该目录下的日志到Cloud Logging,避免后续故障时日志丢失。
- 若Pod处于Running/CrashLoopBackOff状态,可直接进入容器读取日志:
日志内容说明
该debug日志包含远多于现有7条报错的故障信息:当前Cloud Logging中展示的仅为npm输出到stderr的简要报错,debug日志中会记录完整的执行栈追踪、文件权限校验结果、资源占用情况、依赖包冲突详情、底层系统调用错误等未输出到标准输出/标准错误的内容,拿到该日志即可定位服务崩溃的根因。
内容的提问来源于stack exchange,提问作者willi
相关产品推荐
相关产品推荐

