如何使用 DinD (tcp) 浏览部署在 Kubernetes 中的 Hyperledger Fabric 2.2.2 Java 链代码的日志

问题描述 投票:0回答:1

我在使用 Docker (DinD) 部署在 Kubernetes 中的 Fabric 网络 (v2.2.2) 中遇到问题。当我执行“对等链码查询...”时,返回 500 错误:

Error: endorsement failure during query. response: status:500 message:"error in simulation: transaction returned with failure: Unexpected error"

但我在对等节点中找不到任何日志(只有一个显示 200 的 GET 条目)。我也找不到链代码 Pod 的任何位置...如何找到链代码运行的 Pod? (或者任何其他查看日志的替代方式......不是 Kubernetes,不是 Docker)。 Java 链代码已由 Hyperledger Bevel 正确安装、批准和提交,我可以执行对等链代码调用命令(并且我看到通道“高度”增加,因此区块链正在更新。我只是无法查询。我怀疑它是我正在查询的特定方法的代码问题,但我看不到除 500 之外的任何信息。我应该查找该实例什么?(Docker pod 也没有显示任何日志)

kubernetes hyperledger-fabric docker-in-docker
1个回答
0
投票

答案非常简单,一旦你意识到 DinD(Docker in Docker)与 Kubernetes 完全隔离,那么 Kubernetes 集群永远不会知道 docker 内部创建的 docker 的任何信息。它永远不会显示为 Pod 或容器。它们不是 Pod。 只需在 docker pod 中输入“kubectl exec...”并执行“docker ps”即可查看正在运行的 docker。然后“docker log...”将显示特定 docker 上的日志(在我的例子中运行 Java Chaincode 的那个)

© www.soinside.com 2019 - 2024. All rights reserved.