You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kong Gateway Docker容器健康检查最简实现方案咨询

Docker部署的Kong Gateway健康检查端点最简实现方案

首选方案:利用Kong内置插件实现(无额外服务开销)

这是最快最简洁的方式,无需新增任何外部服务,直接通过Kong的插件能力生成指定响应:

步骤1:创建健康检查服务

先创建一个指向虚拟地址的服务(无需实际运行):

curl -X POST http://localhost:8001/services \
  --data name=health-service \
  --data url=http://localhost:9999

步骤2:绑定/health/路由

为该服务创建匹配/health/路径的GET路由:

curl -X POST http://localhost:8001/services/health-service/routes \
  --data paths[]=/health/ \
  --data methods[]=GET

步骤3:添加Echo插件返回指定响应

使用Kong的echo插件直接返回要求的200状态码和JSON内容:

替换{route-id}为上一步创建路由后返回的ID,或通过路由名称关联操作

curl -X POST http://localhost:8001/routes/{route-id}/plugins \
  --data name=echo \
  --data config.status_code=200 \
  --data config.body='{"status":"UP"}' \
  --data config.headers.Content-Type=application/json

完成后,访问http://你的Kong地址/health/即可得到预期响应。

进阶方案:结合Kong自身状态检查

如果需要同时验证Kong Gateway自身的健康状态,可以将服务指向Kong内置的/status管理端点,再通过插件格式化响应:

步骤1:创建指向Kong状态的服务

curl -X POST http://localhost:8001/services \
  --data name=kong-health-service \
  --data url=http://localhost:8001/status

步骤2:绑定路由并添加响应转换插件

# 创建路由
curl -X POST http://localhost:8001/services/kong-health-service/routes \
  --data paths[]=/health/ \
  --data methods[]=GET

# 添加插件转换响应格式
curl -X POST http://localhost:8001/routes/{route-id}/plugins \
  --data name=response-transformer \
  --data config.replace.body='{"status":"UP"}'

此方案会先检查Kong自身的运行状态,再返回统一格式的健康响应,更适合生产环境。

Docker容器健康检查配置(最佳实践)

将Kong的健康端点与Docker容器健康检查绑定,让Docker自动监控容器状态:

# Docker Compose示例
services:
  kong:
    image: kong:latest
    ports:
      - "8000:8000"
      - "8001:8001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health/"]
      interval: 30s
      timeout: 10s
      retries: 3

内容的提问来源于stack exchange,提问作者Milinda Kasun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:51:09