서비스 검색 및 DNS

이 주제에서는 Anthos clusters on AWS가 AWS Virtual Private Cloud(VPC)와 클러스터 모두에서 DNS(도메인 이름 서비스)와 상호작용하는 방법을 설명합니다.

AWS VPC DNS

이 섹션에서는 Anthos clusters on AWS(GKE on AWS)에 대해 AWS Virtual Private Cloud(VPC)를 구성하는 방법을 설명합니다.

VPC DNS 구성

AWS용 Anthos 클러스터는 AWS VPC에서 여러 가지 DNS 구성을 지원합니다. DHCP 옵션 집합을 만들 때 VPC의 DNS 설정을 구성합니다. 자세한 내용은 VPC에 대한 DNS 지원을 참조하세요.

다음 옵션을 구성할 수 있습니다.

DNS 호스트 이름
이렇게 하면 공개 IP 주소의 EC2 인스턴스가 해당 공개 DNS 호스트 이름을 가져오는지 여부가 설정됩니다. VPC의 DHCP 옵션 집합에서 enableDNSHostnames 필드를 사용하여 이 필드를 설정합니다. 자세한 내용은 VPC DNS 호스트 이름VPC에 대한 DHCP 옵션 집합을 참조하세요.
EC2 DNS 호스트 이름
이렇게 하면 EC2 인스턴스가 기본 DNS 호스트 이름 또는 커스텀 DNS 호스트 이름을 수신하는지 여부가 설정됩니다.
DNS 서버
VPC의 DHCP 옵션 집합에 AWS Route53 DNS 서버(AmazonProvidedDNS 옵션 사용) 또는 호스팅된 DNS 서버가 사용되는지 여부입니다.

지원되는 VPC DNS 구성

다음 표에는 Anthos clusters on AWS에서 지원하는 DNS 구성이 포함되어 있습니다.

DNS 호스트 이름 사용 설정 EC2 DNS 호스트 이름 DNS 서버 지원 여부
true 기본값 AWS Route53
false 기본값 AWS Route53
true 커스텀 AWS Route53
false 커스텀 AWS Route53
true 커스텀 호스팅 방식
false 커스텀 호스팅 방식
true 기본값 호스팅 방식 없음
false 기본값 호스팅 방식 없음

서비스 검색

서비스 검색은 워크로드가 IP 주소를 몰라도 서비스를 찾는 프로세스입니다. 이 섹션에서는 Anthos clusters on AWS(GKE on AWS)가 서비스 검색 및 관리형 DNS를 구현하는 방법을 설명합니다.

Kubernetes는 다음 사양을 사용하는 서비스 이름을 자동으로 생성합니다.

service.namespace.svc.zone

각 항목의 의미는 다음과 같습니다.

  • service: 서비스 이름
  • namespace: 서비스의 네임스페이스
  • zone: 서비스의 AWS 영역

워크로드도 DNS 이름을 사용하여 example.net과 같은 외부 서비스에 액세스합니다. Kubernetes의 DNS 동작에 대한 자세한 내용은 서비스 및 pod의 DNS를 참조하세요.

CoreDNS

Anthos clusters on AWS는 CoreDNS를 사용하여 클러스터 내에서 DNS 이름을 확인합니다. CoreDNS는 kube-system 네임스페이스에서 중복되고 확장된 배포로 실행됩니다. CoreDNS 배포에는 CoreDNS pod를 그룹화하여 단일 IP 주소를 제공하는 서비스가 있습니다. CoreDNS 배포는 클러스터의 크기와 사용량에 따라 확장됩니다.

NodeLocal DNSCache

AWS용 Anthos 클러스터는 NodeLocal DNSCache를 사용하여 DNS 조회 성능을 개선합니다. NodeLocal DNSCache는 클러스터의 각 노드에서 DaemonSet로 실행됩니다. 포드가 DNS 요청을 수행하면 요청은 먼저 동일한 노드의 DNS 캐시로 이동합니다. 캐시가 DNS 요청을 해결할 수 없는 경우 캐시는 요청을 다음 중 하나로 전달합니다.

  • 내부 이름의 CoreDNS(예: foo.bar.svc.cluster.local)
  • 외부 이름(예: example.net)에 대한 Amazon DNS 서버

Calico

Anthos clusters on AWS는 Calico를 사용하여 클러스터 노드 간에 BGP 라우팅을 설정합니다.

다음 단계