Sidecar 运行状况

    Dapr 提供了一种使用 HTTP /healthz 端点来确定其健康状况的方法。 通过此端点,对Dapr 进程或 sidecar进行探测,可以确定其运行状况,从而确定其就绪程度和活跃度。 See health API

    The Dapr endpoint can be used by health probes from the application hosting platform. 本主题描述 Dapr 如何与来自不同托管平台的探测器集成。 本主题描述 Dapr 如何与来自不同托管平台的探测器集成。

    作为用户,在将Dapr部署到主机平台时(例如Kubernetes),Dapr健康端点会自动为您配置。 您无需配置任何内容。

    注意:Dapr actors还有一个健康 API 终点,Dapr 会探测对 Dapr 信号的响应申请,该信号表示actor应用程序是健康且运行的。 See

    The kubelet uses liveness probes to know when to restart a container. 例如,活跃探针可捕获应用程序正在运行但无法进行处理的死锁。 例如,活跃探针可捕获应用程序正在运行但无法进行处理的死锁。 在这种状态下重新启动容器有助于使应用程序在具有错误的情况下更可用。

    The kubelet uses readiness probes to know when a container is ready to start accepting traffic. 当一个 pod 的所有容器都已准备就绪时,会认为其准备就绪。 当一个 pod 的所有容器都已准备就绪时,会认为其准备就绪。 此就绪信号的一个用途是控制哪些 Pod 用作 Kubernetes 服务的后端。 当 Pod 未就绪时,将从 Kubernetes 服务负载均衡器中除去。

    当与 Kubernetes 集成时,Dapr sidecar 会被注入一个Kubernetes 探针配置,告诉它要使用 Dapr healthz 端点。 这是由 Sidecar Injector 系统服务完成的。 下面的图中显示了与 kubelet 的集成。

    在上述 示例, 字段指定的 kubelet 应该每3秒执行一个主动性探测。 initialDelaySeconds 字段告诉 kubelet 在执行第一个探针前应等待 3 秒钟。 在此示例中,要执行探测器, kubelet 将 HTTP GET 请求发送到正在容器中运行并侦听端口 8080的服务器。 如果服务器的 /healthz 路径的处理程序返回成功代码,那么 kubelet 将认为容器是活动的并且是健康的。 如果处理程序返回失败代码,kubelet 将杀死容器并重新启动它。

    任何大于或等于200和小于400的代码都是成功的。 任何其他代码表示失败。

    准备就绪探测器与活跃度探测器配置相类似。 唯一的不同是您使用 字段而不是 livenessProbe 字段。

    如上所述,此配置由 Sidecar 注入服务自动完成。 本部分描述了在活跃度和就绪探测器上设置的特定值。

    有关更多信息;