How to use nginx /dbg

This document (000020126) is provided subject to the disclaimer at the end of this document.

Situation

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

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:000020126
  • Creation Date: 06-May-2021
  • Modified Date:06-May-2021
    • SUSE Rancher

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback@suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.


SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center