Kubernetes 注册管理员失败,错误:%o消息=调用注册终结点失败,连接超时

Kubernetes 注册管理员失败,错误:%o消息=调用注册终结点失败,连接超时,kubernetes,hyperledger-fabric,hyperledger-fabric-ca,Kubernetes,Hyperledger Fabric,Hyperledger Fabric Ca,我正在kubernetes上运行我的结构网络,并且我已经为所有组织设置了ca服务器。我可以从cli注册和注册用户,但当我使用fabric ca client库和nodejs注册和注册用户时。我面临着连接超时问题,同时如果我查看我的ca服务器的日志,就会发现它能够处理请求。 Edit1:我正在使用fabric示例中提供的相同代码来注册和注册用户 所有的吊舱都使用kubernetes中的这些服务相互通信 这就是我的连接配置文件的外观 "certificateAuthorities"

我正在kubernetes上运行我的结构网络,并且我已经为所有组织设置了ca服务器。我可以从cli注册和注册用户,但当我使用fabric ca client库和nodejs注册和注册用户时。我面临着连接超时问题,同时如果我查看我的ca服务器的日志,就会发现它能够处理请求。 Edit1:我正在使用fabric示例中提供的相同代码来注册和注册用户

所有的吊舱都使用kubernetes中的这些服务相互通信

这就是我的连接配置文件的外观

"certificateAuthorities": {
    "ca-org2": {
        "url": "https://ca-org2:8054",
        "caName": "ca-org2",
        "tlsCACerts": {
            "pem": ["-----BEGIN CERTIFICATE-----\nMIICBjCCAa2gAwIBAgIUHwBYatG6KhezYWHxdGgYGqs77PIwCgYIKoZIzj0EAwIw\nYDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy\nc2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEQMA4GA1UEAxMHY2Etb3Jn\nMjAeFw0yMTAzMjAxMDI4MDBaFw0zNjAzMTYxMDI4MDBaMGAxCzAJBgNVBAYTAlVL\nMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNsZXkxGTAXBgNVBAoT\nEG9yZzIuZXhhbXBsZS5jb20xEDAOBgNVBAMTB2NhLW9yZzIwWTATBgcqhkjOPQIB\nBggqhkjOPQMBBwNCAAQUIABkRhfPdwoy2QrCY3oh8ZuzP5OprZJawVXO2ojid3j4\nC9W4l46QXR5J7iG5MLczguPZWB9dZWygRQdUQeoAo0UwQzAOBgNVHQ8BAf8EBAMC\nAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNVHQ4EFgQURx/h3nkH0fq+3TlRPnQW\nWTHbR7YwCgYIKoZIzj0EAwIDRwAwRAIgCF+vcLFERb+VHa6Att0rh5yhpMd0bHEn\nmkNo0YfKuX4CICodtpp6AKtNWXreskaN+kRMH8eDmwvxkhvTK68ejv8U\n-----END CERTIFICATE-----\n"]
        },
        "httpOptions": {
            "verify": false
        }
    }
}


我找到了这个问题的解决方案。问题与连接超时有关,我的CA服务器正在接收请求并能够处理它们,但由于超时时间较短,请求被取消。解决方案是增加
连接超时
请求超时
。超时的默认值是3s,我将它增加到30s,它开始工作。可以找到默认配置

我们可以从fabric ca客户端库的源代码中更新超时值,也可以简单地使用
fabric common
library的方法更新这些配置值,如下所示

const { Utils: utils } = require('fabric-common');
const path=require('path');
let config=utils.getConfig()
config.file(path.resolve(__dirname,'config.json'))
这是我们修改过的配置文件
config.json

  {
  "request-timeout" : 30000,
  "tcert-batch-size" : 10,
  "crypto-hash-algo": "SHA2",
  "crypto-keysize": 256,
  "crypto-hsm": false,
  "connection-timeout": 30000
  }

您用于连接到服务器的URL是什么?此服务器是否可以从您尝试运行配置的设备访问?似乎某些防火墙正在断开连接,或者地址设置不正确。是的,来自nodejs应用程序的请求正在成功传递到CA服务器。由于所有组件都在kubernetes集群中运行,因此我使用服务访问我的部署/吊舱。您的CA日志是正常的。您确定在调用register函数时附加了这些日志吗?是的,我们可以使用日志时间戳进行验证
  {
  "request-timeout" : 30000,
  "tcert-batch-size" : 10,
  "crypto-hash-algo": "SHA2",
  "crypto-keysize": 256,
  "crypto-hsm": false,
  "connection-timeout": 30000
  }