Search

CoreDNS CNAME Setting

백업본 생성
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
복사