Troubleshooting for Application Developers¶
Going through these basic troubleshooting steps should help you as an Application Developer identify where a problem may lie. If any of these steps do not give the expected "fine" output, use kubectl describe
to investigate.
If you are using Lens instead of the kubectl
command-line interface, clicking through your Deployments and Pods will reveal the same information as the commands given below.
Is the Kubernetes cluster fine?¶
All Nodes need to have status Ready
.
kubectl get nodes
Are my application Pods fine?¶
Pods should be Running
or Completed
, and fully Ready
(e.g., 1/1
or 6/6
)?
kubectl get pods
Check your Pods for excessive resource usage:
kubectl top pod
Inspect application logs and metrics.
Are my Deployments fine?¶
Are all Deployments fine? Deployments should show all Pods Ready, Up-to-date and Available (e.g., 2/2 2 2
).
kubectl get deployments
Are Helm Releases fine?¶
All Releases should be deployed
.
helm list --all
Are my Certificates fine?¶
All Certificates needs to be Ready.
kubectl get certificates
Is the API server healthy?¶
The command below should return HTTP/2 200
.
curl --fail --verbose -k https://$loadbalancer_ip_address:6443/healthz
Are Compliantkubernetes apps services healthy?¶
All commands below should return HTTP/2 200
.
curl --fail --verbose https://dex.$DOMAIN/healthz
curl --fail --verbose https://harbor.$DOMAIN/healthz
curl --fail --verbose https://grafana.$DOMAIN/healthz
curl --fail --verbose https://opensearch.$DOMAIN/
curl --fail --verbose -k https://app.$DOMAIN/healthz # WC Ingress Controller