What is the /dbg command
/dbg is a program included in the ingress-nginx container image that can be used to show information about the nginx environment and the resulting nginx configuration, which can be helpful when debugging ingress issues in Kubernetes.
Requirements
- A Kubernetes cluster that has ingress enabled with ingress-nginx as the ingress controller
- A cluster with Linux nodes, nginx will not run on Windows
- kubectl configured
Using /dbg
This command needs to be run from inside one of the ingress-nginx pods, so first determine the pod to run it in.
> kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
default-http-backend-67cf578fc4-54jlz 1/1 Running 0 5d
nginx-ingress-controller-56nss 1/1 Running 0 5d
nginx-ingress-controller-hscfg 1/1 Running 0 4d21h
nginx-ingress-controller-n4p22 1/1 Running 0 5d
> export NGINX_POD=nginx-ingress-controller-n4p22
If you are diagnosing specific connection issues, you can determine which controller is receiving the traffic by looking through the logs of each.
Viewing ingress-controller status
/dbg general will show the count of running controllers.
> kubectl exec -n ingress-nginx $NGINX_POD /dbg general
{
"controllerPodsCount": 3
}
Viewing backend configuration
/dbg backends list will list the discovered backends:
```
kubectl exec -n ingress-nginx $NGINX_POD /dbg backends list cattle-system-rancher-80 upstream-default-backend ```
/dbg backends get will show the configuration for the named backend:
> kubectl exec -n ingress-nginx $NGINX_POD /dbg backends get cattle-system-rancher-80
Viewing ingress certificate data
/dbg certs will dump the x509 cert and key for a certificate that nginx has discovered from k8s secrets for the given hostname:
> kubectl exec -n ingress-nginx $NGINX_POD /dbg certs get <fqdn>
Viewing dynamically generated nginx configuration
/dbg conf will dump the dynamically generated nginx configuration. To view the configuration for a specific ingress hostname, you could run /dbg conf and then grep for the server_name:
> kubectl exec -n ingress-nginx $NGINX_POD /dbg conf | grep "server_name example.com" -B2 -A20
Comments
Please sign in to leave a comment.