Skip to main content

Version: 3.14.1

Configuration Troubleshooting

Troubleshooting is required if the applied behavior does not match expectations, such as routes not being created correctly, plugins not being applied, or services failing to route traffic.

When you apply a Kubernetes resource—whether a Gateway API, Ingress, or APISIX CRD—the Ingress Controller translates it into ADC YAML, which is then applied to the gateway:

This document explains how to inspect the translated ADC configurations in memory and check the configurations actually applied to the gateway.

Inspect Translated ADC Configurations

APISIX Ingress Controller provides a browser-accessible debug API that displays the translated ADC configurations, derived from the last applied Gateway API, Ingress, and APISIX CRD resources, in JSON format. It helps inspect the in-memory state before the configurations are synchronized with the gateway.

To use the debug API, configure these values in the ingress controller's configuration file:

config.yaml
enable_server: true             # Enable the debug API server
server_addr: "127.0.0.1:9092" # Server address

These values are not yet available in the Helm chart. To apply the changes, modify the ConfigMap and restart the controller Deployment.

Once the debug API is enabled, you can access it by forwarding the controller pod’s port to your local machine:

kubectl port-forward pod/<your-apisix-ingress-controller-pod-name> 9092:9092 &

You can now access the debug API in browser at 127.0.0.1:9092/debug and inspect the translated resources by resource type, such as routes and services.

Inspect Synchronized Gateway Configurations

To inspect the configurations synchronized to the gateway, you can use the Admin API.

First, forward the Admin API's service port to your local machine:

kubectl port-forward service/apisix-admin 9180:9180 &

If you are using APISIX in standalone mode, you can send a request to /apisix/admin/configs to view all configurations synchronized to the gateway:

curl "http://127.0.0.1:9180/apisix/admin/configs" -H "X-API-KEY: ${ADMIN_API_KEY}"

If you are using APISIX with etcd, you can send a request to /apisix/admin/<resource> to view the synchronized configurations of specific resources. For instance, to view the route configuration:

curl "http://127.0.0.1:9180/apisix/admin/routes" -H "X-API-KEY: ${ADMIN_API_KEY}"

For reference, see Admin API.

API7.ai Logo

The digital world is connected by APIs,
API7.ai exists to make APIs more efficient, reliable, and secure.

Sign up for API7 newsletter

Product

API7 Gateway

SOC2 Type IIISO 27001HIPAAGDPRRed Herring

Copyright © APISEVEN PTE. LTD 2019 – 2025. Apache, Apache APISIX, APISIX, and associated open source project names are trademarks of the Apache Software Foundation