12.7. 启用 Fabric8 Karaf 健康检查
建议您作为启动功能安装 fabric8-karaf-checks
。启用后,您的 Karaf 服务器可以公开 http://0.0.0.0:8181/readiness-check
和 http://0.0.0.0:8181/health-check
URL,供 Kubernetes 用于就绪度和存活度探测。
这些 URL 仅在以下是满足时通过 HTTP 200 状态代码响应:
- OSGi Framework 已启动。
- 所有 OSGi 捆绑包都已启动。
- 已安装所有引导功能。
- 所有部署的 BluePrint 捆绑包都处于 created 状态。
- 所有部署的 SCR 捆绑包都处于 active、registered 或 factory 状态。
- 所有 Web 捆绑包都部署到 web 服务器。
- 所有创建的 Camel 上下文都处于启动状态。
流程
打开项目的
pom.xml
,并在 bootFeatures
部分添加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-check
和health-check
端点将注册到 Undertow 服务器的独立实例中 -
readinessCheckPath
和healthCheckPath
属性允许您配置可用于就绪度和健康检查的实际 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