JUST WRITE

CoreDNS 설정 - Host 강제로 넣기 본문

MLOps/Kubernetes

CoreDNS 설정 - Host 강제로 넣기

천재보단범재 2023. 2. 12. 18:04

CoreDNS 설정 - Host 강제로 넣기

CoreDNS 설정

Bare Metal Server에서 Kubernetes Cluster를 구축하는 프로젝트에 참여하고 있습니다.

DNS NameServer 역시 Private 환경에서 따로 구성하고 있었다.

보통 Public Network 환경이라면 ISP(Internet Service Provider)가 제공해 주거나

구글에서 제공하는 Name Server인 8.8.8.8을 사용한다.

Kubernetes Cluster를 구성하면서 DNS 세팅 관련해서 작업한 것을 정리해보려 한다.

Host 강제로 넣기

어떠한 방법으로 Pod에서 해당 DNS로 가지를 못했다.

그러다가 찾게 된 방법이 CoreDNS 설정에 Hostname를 강제로 박을 수 있었다.

실낱같은 희망으로 해당 방법으로 작업을 진행해 보았다.

kube-system Namespace에 coredns라는 configmap이 존재한다.

해당 configmap을 수정하였다.

$ kubectl edit cm coredns -n kube-system

apiVersion: v1
kind: ConfigMap
metadata:
  creationTimestamp: "2023-01-09T05:14:26Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "*****"
data:
  Corefile: |
    .:53 {
      errors
      health {
        lameduck 5s
      }
      ready
      kubernetes cluster.local in-addr.arpa ip6.arpa {
        pods insecure
        fallthrough in-addr.arpa ip6.arpa
        ttl 30
      }
      prometheus :9153
      forward . /etc/resolv.conf {
        max_concurrent 1000
      }
      cache 30
      loop
      reload
      loadbalance
      hosts {
        ***.***.***.*** ${host명}  # 강제로 넣은 부분
        fallthrough
      }
    }

configmap에서 hosts라는 부분에 원하는 Host와 IP를 직접 넣어준다.

수정한 후에 coredns와 flannel Pod를 재시작해주었다.

$ kubectl rollout restart coredns -n kube-system
$ kubectl rollout restart flannel -n kube-system
728x90
반응형
Comments