- 쿠버네티스 클러스터에 kube-system이라는 Namespace에는 kube-dns라는 Service 타입의 오브젝트가 떠있음.
- 새로운 Service를 생성하게되면(svc-web이라는 서비스를 생성하였고 그 서비스의 IP는 10.96.100.100 이라 가정)
그 서비스의 정보인 [svc-web : 10.96.100.100] 이라는 정보가 kube-dns에 등록 되어짐.
- 즉 svc-web.default.svc.cluster.local에 연결 해달라는것은 10.96.100.100에 연결해 달라는 것과 같다.
- kube-dns 그 자체도 하나의 Service 타입 오브젝트이기 때문에 자체적인 Cluster IP를 가지고 있는데 그 IP는 보통 10.96.0.10 인 경우가 많다.
- 모든 Pod는 생성될때 /etc/resolv.conf 파일을 가지고 있게 되는데. 이 파일 안에는 nameserver = 10.96.0.10 라는 내용이 적혀 있다.
- 보통 /etc/resolv.conf 파일은 아래와 같이 되어있다.
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local csaa2fcloud.internal
ndots 5
- 클러스터에서 curl svc-web 까지만 입력해도 생략된 부분이 자동으로 채워지면서, 해당 서비스로 찾아 갈 수 있음.
- 만약 다른 DNS 서비스를 사용하고 싶다면, Pod를 배포할 때 yaml 파일에 아래와 같이 정의하면 된다.
dnsPolicy: "None"
dnsConfig:
nameservers:
-1.2.3.4
searches:
- dns-exampe.svc.cluster-domain.example
- my.dns.search.suffix
options:
- name: ndots
value: "2"
- name: edns0
'IT > Kubernetes' 카테고리의 다른 글
[Kubernetes] GKE 클러스터에 GCE-PersistentDisk 생성하고 Pod에 Mount 하기. (0) | 2022.07.13 |
---|---|
[Kubernetes] ControlPlane 구성 요소에 대하여 새로 알게 된 사실 (0) | 2022.06.28 |
[Kubernetes] Kubernetes 운영 환경에서 애플리케이션의 DB 커넥션 Pool 문제가 발생하였을 때. (1) | 2022.05.24 |
[Kubernetes] 쿠버네티스 컨텍스트 명령어 정리. (0) | 2022.05.04 |
[Kubernetes] Ubuntu에 Kubernetes 싱글노드로 구축하기. (0) | 2022.02.22 |