Kong: the status endpoint is for probes, the Admin API is not

Port 8100 serves /status and /metrics without exposing any configuration. It is what a load balancer or Kubernetes probe should call.

Code
# kong.conf
status_listen = 0.0.0.0:8100

curl http://localhost:8100/status

# Kubernetes
livenessProbe:
  httpGet: { path: /status, port: 8100 }
  initialDelaySeconds: 10
readinessProbe:
  httpGet: { path: /status/ready, port: 8100 }
Output
{
  "database": {"reachable": true},
  "memory": {"lua_shared_dicts": {...}},
  "server": {"connections_active": 42, "connections_handled": 918204}
}

# /status/ready returns 503 until the configuration is loaded, which is what
# stops traffic arriving at a node that has not finished starting.
#
# Pointing a probe at 8001 works and quietly requires the Admin API to be
# reachable from the load balancer - which is exactly what it should not be.
Advertisement

Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.

Published 2026-08-25