【问题标题】:Health Check on Fabric CAFabric CA 的健康检查
【发布时间】:2022-08-17 23:36:26
【问题描述】:

我有一个 hyperledger 结构网络 v2.2.0,在 kubernetes 集群中部署了 2 个对等组织和一个排序组织。每个组织都有自己的 CA 服务器。 CA pod 有时会不断重启。为了知道CA服务器的服务是否可达,我尝试在端口9443上使用healthz API。

我在 CA 部署中使用了 livenessProbe 条件,如下所示:

    livenessProbe:
      failureThreshold: 3
      httpGet:
        path: /healthz
        port: 9443
        scheme: HTTP
      initialDelaySeconds: 10
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1

配置此活动探测后,Pod 会继续以事件Liveness probe failed: HTTP probe failed with status code: 400 重新启动。为什么会发生这种情况?

    标签: hyperledger-fabric-ca


    【解决方案1】:

    HTTP 400 code:

    HTTP 400 Bad Request 响应状态代码表示服务器不能或不会处理请求,因为某些东西被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由)。

    这表明 Kubernetes 正在以 hyperledger 拒绝的方式发送数据,但是如果没有更多信息,很难说问题出在哪里。一些快速检查开始:

    • 自己直接向hyperledger/healthz资源发送一些GET请求。你得到了什么?如果一切正常,您应该返回 200 "OK",或者返回 503 "Service Unavailable",其中包含哪些节点已关闭的详细信息 (docs)。
    • kubectl describe pod liveness-request。您应该看到底部的几行更详细地描述了 liveness 探测的状态:
    Restart Count:  0
    .
    .
    .
    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled <unknown> default-scheduler Successfully assigned example-dc/liveness-request to dcpoz-d-sou-k8swor3
    Normal Pulling 4m45s kubelet, dcpoz-d-sou-k8swor3 Pulling image "nginx"
    Normal Pulled 4m42s kubelet, dcpoz-d-sou-k8swor3 Successfully pulled image "nginx"
    Normal Created 4m42s kubelet, dcpoz-d-sou-k8swor3 Created container liveness
    Normal Started 4m42s kubelet, dcpoz-d-sou-k8swor3 Started container liveness
    

    其他一些需要调查的事情:

    • httpGet 可能有用的选项:
    • 您可能需要有效的客户端证书(如果启用了 TLS,并且 clientAuthRequired 设置为 true)。

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 2014-10-02
      • 2021-09-13
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多