12.7. 启用 Fabric8 Karaf 健康检查

建议您作为启动功能安装 fabric8-karaf-checks。启用后,您的 Karaf 服务器可以公开 http://0.0.0.0:8181/readiness-checkhttp://0.0.0.0:8181/health-check URL,供 Kubernetes 用于就绪度和存活度探测。

注意

这些 URL 仅在以下是满足时通过 HTTP 200 状态代码响应:

  • OSGi Framework 已启动。
  • 所有 OSGi 捆绑包都已启动。
  • 已安装所有引导功能。
  • 所有部署的 BluePrint 捆绑包都处于 created 状态。
  • 所有部署的 SCR 捆绑包都处于 active、registered 或 factory 状态。
  • 所有 Web 捆绑包都部署到 web 服务器。
  • 所有创建的 Camel 上下文都处于启动状态。

流程

  1. 打开项目的 pom.xml,并在 boot Features 部分添加 fabric8-karaf-checks 功能。

    pom.xml

    <startupFeatures>
      ...
      <feature>fabric8-karaf-checks</feature>
      ...
    </startupFeatures>

    oc:resources 目标将检测您使用 fabric8-karaf-checks 功能,并将 Kubernetes 用于就绪度和存活度探测来添加到容器的配置中。

12.7.1. 配置健康检查

默认情况下,fabric8-karaf-checks 端点注册到在端口 8181 上运行的内置 HTTP 服务器引擎(Undertow)中。为了避免容器中的其他长时间运行的 HTTP 进程被阻止的运行状况和就绪度检查请求,端点可以注册到单独的 Undertow 容器中。

这些检查可以通过设置以下属性在 etc/io.fabric8.checks.cfg 文件中进行配置:

  • httpPort :如果指定此属性并且是有效的端口号,则 readiness-checkhealth-check 端点将注册到 Undertow 服务器的独立实例中
  • readinessCheckPathhealthCheckPath 属性允许您配置可用于就绪度和健康检查的实际 URI。默认情况下,它们与前一个值相同。
注意

这些属性可在启动 Fuse-Karaf 后进行修改,但也可在 etc/io.fabric8.checks.cfg 文件中指定为自定义 glibc distro 的一部分,供希望具有 fabric8-karaf-checks 功能的客户使用。

以下示例演示了 etc/io.fabric8.checks.cfg 文件中健康和就绪度属性的配置:

示例

httpPort = 8182
readinessCheckPath = /readiness-check
healthCheckPath = /health-check