Skip to content

Validate Kubernetes Cluster Health

Terminal window
kubectl get nodes
kubectl get pods -A
Terminal window
kubectl get apps -n argocd
Terminal window
kubectl get gatewayclass
kubectl get gateways -n tailscale
kubectl get certificates -n tailscale
kubectl get pods -n tailscale
kubectl get pods -n envoy-gateway
kubectl get svc -n tailscale-dns
kubectl get httproute -A

If a route is not accepting, describe it to see conditions:

Terminal window
kubectl describe httproute <name> -n <namespace>

Hubble UI is available at https://hubble.sudhanva.me from a Tailnet client once the HTTPRoute syncs.

On a tailnet client, docs.sudhanva.me should resolve to the Tailscale Gateway IP:

Terminal window
dig +short docs.sudhanva.me @100.100.100.100
curl -I https://docs.sudhanva.me

If you have other apps exposed through the Gateway, validate one of them as well:

Terminal window
dig +short home.sudhanva.me @100.100.100.100
curl -I https://home.sudhanva.me

Off the tailnet, it should resolve to Cloudflare:

Terminal window
dig +short docs.sudhanva.me @1.1.1.1
curl -I https://docs.sudhanva.me

If infra-external-secrets is Degraded, verify the Vault token secret and ClusterSecretStore:

Terminal window
kubectl -n external-secrets get secret vault-eso-token
kubectl -n external-secrets get clustersecretstore vault -o yaml
kubectl -n external-dns get externalsecret cloudflare-api-token -o yaml
Terminal window
pre-commit run --all-files
kubectl get nodes
kubectl get pods -A