이전 강의에서 DNS 서버가 필요한 이유와 호스트 이름과 IP가 많은 대규모 환경에서 DNS 서버가 이름 확인을 관리하는 데 어떻게 도움이 되는지, 그리고 DNS 서버를 가리키도록 호스트를 구성하는 방법을 살펴보았습니다. 이 기사에서는 호스트를 DNS 서버로 구성하는 방법을 살펴보겠습니다.

DNS 서버 전용 서버와 서버의 항목으로 구성할 IP 집합이 제공됩니다. 많은 DNS 서버 솔루션이 있습니다. 이 강의에서는 CoreDNS라는 특정 솔루션에 초점을 맞출 것입니다.

그렇다면 핵심 dns는 어떻게 얻습니까? CoreDNS 바이너리는 Github 릴리스 페이지에서 또는 도커 이미지로 다운로드할 수 있습니다. 전통적인 길을 가자. curl 또는 wget을 사용하여 바이너리를 다운로드합니다. 그리고 추출합니다. coredns 실행 파일을 얻습니다.

https://img-c.udemycdn.com/redactor/raw/2019-04-17_03-55-27-20b6c5e30d8eca52bb8fe74b628f74ef.PNG

실행 파일을 실행하여 DNS 서버를 시작합니다. 기본적으로 DNS 서버의 기본 포트인 포트 53에서 수신 대기합니다.

이제 호스트 이름 매핑에 대한 IP를 지정하지 않았습니다. 이를 위해서는 몇 가지 구성을 제공해야 합니다. 여러 가지 방법이 있습니다. 우리는 하나를 볼 것입니다. 먼저 모든 항목을 DNS 서버의 /etc/hosts 파일에 넣습니다.

그런 다음 해당 파일을 사용하도록 CoreDNS를 구성합니다. CoreDNS는 Corefile이라는 파일에서 구성을 로드합니다. 다음은 CoreDNS가 /etc/hosts 파일에서 호스트 이름 매핑에 대한 IP를 가져오도록 지시하는 간단한 구성입니다. DNS 서버가 실행되면 이제 서버의 /etc/hosts 파일에서 IP와 이름을 선택합니다.

https://img-c.udemycdn.com/redactor/raw/2019-04-17_03-56-22-3add142ffd4675a839e4ea8717e8a43d.PNG

CoreDNS는 플러그인을 통해 DNS 항목을 구성하는 다른 방법도 지원합니다. 이후 섹션에서 Kubernetes에 사용하는 플러그인을 살펴보겠습니다.

CoreDNS에 대한 자세한 내용은 여기를 참조하십시오.

https://github.com/kubernetes/dns/blob/master/docs/specification.md

https://coredns.io/plugins/kubernetes/

Installation of CoreDNS

$ wget <https://github.com/coredns/coredns/releases/download/v1.7.0/coredns_1.7.0_linux_amd64.tgz>
coredns_1.7.0_linux_amd64.tgz

# Extract tar file
$ tar -xzvf coredns_1.7.0_linux_amd64.tgz
coredns

# Run the executable file
# 실행 파일을 실행하여 DNS 서버를 시작합니다. 
# 기본적으로 DNS 서버의 기본 포트인 포트 53에서 수신 대기합니다.
$ ./coredns

Adding into the Corefile

$ cat > Corefile
. {
	hosts   /etc/hosts
}

Run the executable file