728x90
✅ 목표: Cilium을 활용한 DNS 요청의 안정성 확보와 CoreDNS의 성능 최적화를 통해,
MinIO와 같은 서비스의 DNS 응답 시간 단축 및 안정성 향상을 실습합니다.
🔎 이번 글에서 수행할 작업 요약
- Cilium DNS-aware 기능 활성화 및 설정
- CoreDNS의 성능 최적화를 위한 설정 변경
- DNS 안정성 테스트 및 성능 비교
- Cilium을 활용한 네트워크 요청 흐름 제어
🧠 1단계: Cilium DNS-aware 기능 활성화
이 단계의 목적: Cilium의 DNS-aware 기능을 활성화하여,
DNS 요청을 패킷 수준에서 처리할 수 있도록 설정합니다.
# Cilium DNS-aware 기능을 활성화하는 설정 확인
kubectl -n kube-system get configmap cilium-config -o yaml | grep enable-dns
# enable-dns-proxy 설정 확인
enable-dns-proxy: "true" # ✅ DNS-aware 기능 활성화
# Cilium ConfigMap에서 DNS 설정 변경 후 재시작
kubectl -n kube-system rollout restart ds cilium
✅ enable-dns-proxy가 활성화되면, Cilium이 DNS 요청을 처리하고 패킷 수준에서 모니터링할 수 있게 됩니다.
⚙️ 2단계: CoreDNS 최적화
이 단계의 목적: CoreDNS의 성능을 최적화하고, DNS 캐시 설정 및 리소스 제한을 조정하여
DNS 응답 시간을 단축시킵니다.
# CoreDNS ConfigMap을 가져와서 캐시 설정을 추가
kubectl -n kube-system get configmap coredns -o yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health
ready
log
cache 60 # ✅ 캐시 시간 60초로 설정
forward . /etc/resolv.conf
loop
reload
}
# CoreDNS 리소스 설정 확인 및 필요시 CPU, 메모리 리소스 증가
kubectl -n kube-system describe deployment coredns
✅ 캐시 설정과 리소스 할당을 최적화하면 DNS 요청의 속도와 안정성이 향상됩니다.
🧪 3단계: DNS 안정성 테스트
이 단계의 목적: DNS 요청 안정성을 테스트하고, Cilium DNS-aware 기능과 CoreDNS 설정의
성능 개선 효과를 측정합니다.
# DNS 요청을 확인하기 위해 test pod 실행
kubectl run dns-test --image=busybox:1.28 -n default -- sleep 3600
# 파드에 접속하여 nslookup 실행
kubectl exec -it dns-test -n default -- sh
nslookup minio.minio.svc.cluster.local
# ioping으로 네트워크 지연 시간 측정
ioping -c 10 /mnt/test-vol
✅ Cilium DNS-aware와 CoreDNS 최적화 후, DNS 요청 시간이 단축되고,
네트워크의 안정성도 향상되었음을 확인할 수 있습니다.
🔍 4단계: Cilium을 활용한 네트워크 요청 흐름 제어
이 단계의 목적: Cilium의 고급 네트워크 정책 기능을 활용하여,
MinIO와 클라이언트 간의 DNS 요청 흐름을 제어하고 더욱 정확한 라우팅을 설정합니다.
# DNS 요청을 Cilium 네트워크 정책으로 제어하기
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: allow-minio-dns
namespace: etl
spec:
endpointSelector:
matchLabels:
app: spark
egress:
- toEndpoints:
- matchLabels:
app: minio
toPorts:
- ports:
- port: "9000"
protocol: TCP
rules:
http:
- method: "GET"
- method: "POST"
- method: "HEAD"
✅ Cilium 네트워크 정책을 사용하여 DNS 요청을 필터링하고,
MinIO 서비스와의 안전한 연결을 보장할 수 있습니다.
📎 요약 및 핵심 정리
- Cilium DNS-aware 기능을 활성화하여 DNS 요청을 패킷 수준에서 최적화하고,
CoreDNS에서의 캐시와 리소스 설정을 통해 DNS 성능을 향상시킬 수 있었습니다. - CoreDNS 캐시와 Cilium의 DNS-aware 기능은 DNS 안정성을 높이며,
MinIO와 같은 서비스를 더 빠르고 안정적으로 사용할 수 있도록 해줍니다. - Cilium을 활용해 네트워크 정책을 제어하고 DNS 요청을 효율적으로 필터링할 수 있어,
서비스의 보안성과 성능을 더욱 강화할 수 있습니다.
728x90