•
백업본 생성
kubectl get configmap coredns -n kube-system -o yaml > coredns-backup-$(date +%Y%m%d-%H%M%S).yaml
Shell
복사
•
수정본 파일 생성
kubectl get configmap coredns -n kube-system -o yaml > coredns-modified.yaml
Shell
복사
kubectl apply -f coredns-modified.yaml --force
Shell
복사
kubectl rollout restart deployment/coredns -n kube-system
Shell
복사
nginx 서비스 생성
# nginx deployment 생성
kubectl create deployment nginx --image=nginx:latest
# nginx 서비스 노출
kubectl expose deployment nginx --port=80 --type=ClusterIP
# 서비스 확인
kubectl get svc nginx
Shell
복사
api-service 생성
# httpd deployment 생성
kubectl create deployment api-service --image=httpd:latest
# api-service 서비스 노출
kubectl expose deployment api-service --port=80 --type=ClusterIP
# 서비스 확인
kubectl get svc api-service
Shell
복사
database namespace 및 서비스 생성
# database namespace 생성
kubectl create namespace database
# mysql deployment (database namespace)
kubectl create deployment mysql --image=mysql:8.0 -n database
kubectl set env deployment/mysql MYSQL_ROOT_PASSWORD=test123 -n database
# mysql 서비스 노출
kubectl expose deployment mysql --port=3306 --type=ClusterIP -n database
# 서비스 확인
kubectl get svc -n database mysql
Shell
복사
테스트용 Pod 생성
# DNS 테스트용 Pod 생성 (계속 실행)
kubectl run dns-test-pod --image=busybox --command -- sleep 3600
# Pod 실행 확인
kubectl get pod dns-test-pod
Shell
복사
•
기본 서비스 DNS 확인
# 정상적인 서비스 DNS 확인
kubectl exec dns-test-pod -- nslookup nginx.default.svc.cluster.local
kubectl exec dns-test-pod -- nslookup api-service.default.svc.cluster.local
kubectl exec dns-test-pod -- nslookup mysql.database.svc.cluster.local
Shell
복사
•
CNAME 설정 테스트
# rewrite된 도메인 확인
kubectl exec dns-test-pod -- nslookup example.com
kubectl exec dns-test-pod -- nslookup api.myapp.com
kubectl exec dns-test-pod -- nslookup db.myapp.com
Shell
복사
•
HTTP 연결 테스트
# HTTP 연결 테스트
kubectl exec dns-test-pod -- wget -qO- http://example.com
kubectl exec dns-test-pod -- wget -qO- http://api.myapp.com
Shell
복사