CKA 공부 38일차

Core DNS in k8s

  • 두 파드가 서로 호스트명으로 통신하는 가장 쉬운 방법은 무엇일까?

  • 두 파드가 서로의 호스트에 있는 /etc/hosts 파일에 이름과 IP 주소를 기입함으로써 두 파드는 서로 이름으로 통신이 가능하다.

  • 수 백, 수 천개의 파드가 생성되는 k8s 환경에서 이는 좋은 방법이 아니다.

  • 이를 위해 중앙 DNS 서버를 이용할 수 있다.

  • 이를 위해 각 호스트에 /etc/resolv.conf 파일에 네임서버의 호스트명과 IP만 명시해두면 된다.

  • k8s의 파드는 호스트명을 .-로 바꿔서 부르는데, 이는 k8s의 DNS 서버에서 사용하는 방식이며 우리는 이를 CoreDNS라고 부른다.

  • CoreDNS는 파드로 배포되며 kube-system 네임스페이스로 배포된다.

  • DNS 서버는 DNS 파드를 위한 서비스를 갖고 있으며, 새로운 파드가 생성될 때 kubelet이 파드의 /etc/resolv.conf에 DNS 서버 주소가 적힌 파일을 생성한다.

  • kubelet의 설정파일인 /var/lib/kubelet/config.yaml에는 clusterDNS 서버의 IP 주소와 클러스터 도메인이 있는 것을 볼 수 있다.





© 2022. by minkuk

Powered by minkuk