- 본문 내 예시 사항 중 DNS는 K8s 내부 FQDN을 기준으로 작성되었으나, Real DNS를 기준으로도 테스트 가능하니 참고 바람.
- public한 환경 내에서 수행가능함에 유의하고, 폐쇄망 환경에서 테스트용 컨테이너 기반으로 검증 수행이 필요하다면 별도 toolbox 역할의 컨테이너를 사전 준비 후 해당 컨테이너 내에서 수행할 것.
CURL 전용 (HTTP / HTTPS / 헤더 / JSON 확인)
쉘 들어가서 여러 curl 테스트
kubectl run curl-tester -n k8s-test --rm -it --restart=Never \
--image=curlimages/curl:8.12.1 \
--command -- sh
curl -v http://kubernetes-client-test.k8s-test.svc.cluster.local/test/namespaces
curl -s http://kubernetes-client-test.k8s-test.svc.cluster.local/test/pods | jq .
curl -I http://kubernetes-client-test.k8s-test.svc.cluster.local/
원샷 실행(바로 curl하고 종료)
kubectl run curl-once -n k8s-test --rm -i --restart=Never \
--image=curlimages/curl:8.12.1 \
--command -- sh -c \
'curl -sv http://kubernetes-client-test.k8s-test.svc.cluster.local/test/pods'
HTTPS + 인증서/SSL 문제 확인
kubectl run curl-https -n k8s-test --rm -it --restart=Never \
--image=curlimages/curl:8.12.1 \
--command -- sh -c \
'curl -vk https://example.com'
DNS 점검(nslookup / dig) - CoreDNS 이슈 확인용
curlimages/curl은 nslookup이 없을 수 있어서 DNS 전용 이미지를 따로 추천
dnsutils (dig/nslookup 포함)
kubectl run dnsutils -n k8s-test --rm -it --restart=Never \
--image=registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3 \
--command -- sh
nslookup kubernetes.default.svc.cluster.local
nslookup kubernetes-client-test.k8s-test.svc.cluster.local
dig kubernetes-client-test.k8s-test.svc.cluster.local A
dig +short kubernetes-client-test.k8s-test.svc.cluster.local
busybox로 nslookup만 간단히
kubectl run nslookup-tester -n k8s-test --rm -it --restart=Never \
--image=busybox:1.36 \
--command -- sh
nslookup kubernetes-client-test.k8s-test.svc.cluster.local
ACL / 포트 오픈 확인 (nc -zv) - 네트워크/정책 확인
netshoot (최강 디버깅툴 세트: nc, dig, curl, tcpdump 등)
kubectl run netshoot -n k8s-test --rm -it --restart=Never \
--image=nicolaka/netshoot:latest \
--command -- bash
# 포트 체크
nc -zv kubernetes-client-test.k8s-test.svc.cluster.local 80
nc -zv kubernetes-client-test.k8s-test.svc.cluster.local 443
# 서비스 연결 확인
curl -sv http://kubernetes-client-test.k8s-test.svc.cluster.local
“서비스가 응답은 하는데 이상함” → 라우팅/HTTP 레벨 확인
wget으로 간단 확인
kubectl run wget-tester -n k8s-test --rm -it --restart=Never \
--image=busybox:1.36 \
--command -- sh
wget -S -O- http://kubernetes-client-test.k8s-test.svc.cluster.local/
# traceroute / ping 확인 (ICMP 허용 여부 포함)
ping -c 3 kubernetes-client-test.k8s-test.svc.cluster.local
traceroute kubernetes-client-test.k8s-test.svc.cluster.local
번외) 자주 쓰는 “검증 루틴”
DNS → 서비스 → 포트 → HTTP 순서
# 1) DNS
nslookup <svc>.<ns>.svc.cluster.local
# 2) 포트
nc -zv <svc>.<ns>.svc.cluster.local 80
nc -zv <svc>.<ns>.svc.cluster.local 443
# 3) HTTP
curl -sv http://<svc>.<ns>.svc.cluster.local/
curl -sv http://<svc>.<ns>.svc.cluster.local/health'K8s' 카테고리의 다른 글
| Nginx Ingress Controller의 은퇴식(?) (0) | 2025.11.17 |
|---|---|
| Kubernetes 내부에서 TLS와 인증서 처리 방식 (0) | 2025.08.13 |
| 백엔드 개발자를 위한 Spring Cloud Gateway와 Kubernetes Ingress Controller (0) | 2025.05.18 |