본문 바로가기
K8s

K8s 운영 시 자주 쓰이는 테스트 컨테이너 모음 zip

by Ramos 2026. 1. 21.
  • 본문 내 예시 사항 중 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/curlnslookup이 없을 수 있어서 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