티스토리 뷰
External DNS
https://github.com/kubernetes-sigs/external-dns
- 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 |
'CLOUD > AWS' 카테고리의 다른 글
[AWS/Terraform] IAM, instance profile 구성 (0) | 2022.09.11 |
---|---|
[AWS] Lambda (0) | 2022.09.07 |
[Terraform] aws_launch_template 시작 템플릿 (0) | 2022.08.30 |
[Terraform] terraform.tfvars 과 variables.tf 의 차이 (0) | 2022.08.30 |
[Terraform] aws_autoscaling_group 오토스케일링 그룹 (+instance refresh) (0) | 2022.08.30 |