이전 강의에서 DNS 서버가 필요한 이유와 호스트 이름과 IP가 많은 대규모 환경에서 DNS 서버가 이름 확인을 관리하는 데 어떻게 도움이 되는지, 그리고 DNS 서버를 가리키도록 호스트를 구성하는 방법을 살펴보았습니다. 이 기사에서는 호스트를 DNS 서버로 구성하는 방법을 살펴보겠습니다.
DNS 서버 전용 서버와 서버의 항목으로 구성할 IP 집합이 제공됩니다. 많은 DNS 서버 솔루션이 있습니다. 이 강의에서는 CoreDNS라는 특정 솔루션에 초점을 맞출 것입니다.
그렇다면 핵심 dns는 어떻게 얻습니까? CoreDNS 바이너리는 Github 릴리스 페이지에서 또는 도커 이미지로 다운로드할 수 있습니다. 전통적인 길을 가자. curl 또는 wget을 사용하여 바이너리를 다운로드합니다. 그리고 추출합니다. coredns 실행 파일을 얻습니다.
실행 파일을 실행하여 DNS 서버를 시작합니다. 기본적으로 DNS 서버의 기본 포트인 포트 53에서 수신 대기합니다.
이제 호스트 이름 매핑에 대한 IP를 지정하지 않았습니다. 이를 위해서는 몇 가지 구성을 제공해야 합니다. 여러 가지 방법이 있습니다. 우리는 하나를 볼 것입니다. 먼저 모든 항목을 DNS 서버의 /etc/hosts 파일에 넣습니다.
그런 다음 해당 파일을 사용하도록 CoreDNS를 구성합니다. CoreDNS는 Corefile이라는 파일에서 구성을 로드합니다. 다음은 CoreDNS가 /etc/hosts 파일에서 호스트 이름 매핑에 대한 IP를 가져오도록 지시하는 간단한 구성입니다. DNS 서버가 실행되면 이제 서버의 /etc/hosts 파일에서 IP와 이름을 선택합니다.
CoreDNS는 플러그인을 통해 DNS 항목을 구성하는 다른 방법도 지원합니다. 이후 섹션에서 Kubernetes에 사용하는 플러그인을 살펴보겠습니다.
CoreDNS에 대한 자세한 내용은 여기를 참조하십시오.
https://github.com/kubernetes/dns/blob/master/docs/specification.md
https://coredns.io/plugins/kubernetes/
$ 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
$ cat > Corefile
. {
hosts /etc/hosts
}