In-cluster DNS smoke test

Throwaway pod to resolve in-cluster names; verifies CoreDNS + kube-dns svc

kubectl run dnsutils --image=tutum/dnsutils -it --rm --restart=Never -- nslookup kubernetes.default

tool
troubleshooting32 commands
tags
troubleshootingk8sdnsdebug

More troubleshooting commands

  • dig +short @$(kubectl -n kube-system get svc kube-dns -o jsonpath='{.spec.clusterIP}') <name>.<ns>.svc.cluster.local

    Hit CoreDNS clusterIP straight; note: ndots:5 makes short names spam queries

  • kubectl -n kube-system get cm coredns -o yaml; kubectl -n kube-system logs deploy/coredns --tail=50

    Review Corefile (forward/cache) and tail logs for SERVFAIL/upstream errors

  • nmap --script ssl-enum-ciphers -p 443 <host>

    Grade supported TLS versions/ciphers; flags weak/deprecated suites per port

  • openssl s_client -connect <host>:443 -servername <host> -showcerts 2>/dev/null | grep -E 'Verify|s:|i:'

    Show full chain with correct SNI; Verify line catches missing intermediates

  • for h in $(cat hosts.txt); do echo -n "$h "; echo | openssl s_client -connect $h:443 -servername $h 2>/dev/null | openssl x509 -noout -enddate; done

    Loop many hosts to print notAfter dates; pipe to sort for soonest expiry

all 32 troubleshooting commands