티스토리 뷰

External DNS

https://github.com/kubernetes-sigs/external-dns

 

GitHub - kubernetes-sigs/external-dns: Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes I

Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services - GitHub - kubernetes-sigs/external-dns: Configure external DNS servers (AWS Route53, ...

github.com

- public DNS 서버를 통해 Kubernetes 리소스를 검색할 수 있음

- kube-dns 처럼, 원하는 dns 정보를 찾기 위해서 kubernetes API 서버에서 리소스 목록을 검색함

- public DNS로서 AWS Route 53이나 Google Cloud DNS 등을 사용함

 

AWS Route 53 특징

- 사용자의 요청을 EC2인스턴스, ELB, S3등에 효과적으로 연결

- 용자를 AWS외부의 인프라 서비스에도 연결

- 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조절

- 로드밸런싱 기능

- IPv6와  호환

Healch Check 상태 확인 에이전트가 Route 53에 연결된 앱의 각 끝점을 모니터링하여 서비스 사용 가능 여부를 모니터링하고 '정상' 또는 '비정상'dmfh qksghks
모니터링 연결 상태가 좋지 않을 때 CloudWatch에 알림을 구성할 수 있음
Failover 앱이나 시스템의 장애 상황에서 정상적인 endpoint로 장애 조치
지연 시간 기반 라우팅  여러 데이터 센터에 EC2인스턴스가 있을 때 가장 지연 시간이 적은 리소스로 DNS쿼리에 응답 처리함

- 가중치 기반 라우팅, 지역 기반 라우팅도 존재

 

 

EKS와 Router 53

https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md

Route 53 ↔ ALB ↔ Node ↔ Pod로 트래픽이 라우팅됨
  • IAM role [external DNS]
  • eks에 [external DNS]  role 연결 -> serviceaccount.yaml
  • deployment.yaml 배포시 spec.template.spec에 serviceAccountName 추가
  • service.yaml 생성
  • ingress.yaml 배포시 annotatation에 설정
aws alb kubernetes.io/ingress.class:alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/certificate-arn: ACM ARN
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy
alb.ingress.kubernetes.io/listen-ports: '["HTTP": 80, "HTTPS": 443]:'
alb.ingress.kubernetes.io/actions.ssl-redirect: {"Type": "redirect", "RedirectConfig": {"Protocol": "HTTPS", "Port": 443, "StatusCode": "HTTP_301"}}
external-dns external-dns.alpha.kubernetes.io/hostname: hollyhostname.nett

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함