MLOPS/kubernetes

파드를 위해 다른 DNS 설정이 필요한 경우

개발허재 2023. 12. 3. 14:58

https://kubernetes.io/ko/docs/tasks/administer-cluster/dns-custom-nameservers/#:~:text=%ED%8C%8C%EB%93%9C%EB%A5%BC%20%EC%9C%84%ED%95%B4%20%EB%8B%A4%EB%A5%B8%20DNS%20%EC%84%A4%EC%A0%95%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%9C%20%EA%B2%BD%EC%9A%B0

 

DNS 서비스 사용자 정의하기

이 페이지는 클러스터 안에서 사용자의 DNS 파드(Pod) 를 설정하고 DNS 변환(DNS resolution) 절차를 사용자 정의하는 방법을 설명한다. 시작하기 전에 쿠버네티스 클러스터가 필요하고, kubectl 커맨드-

kubernetes.io

 

상황

git clone http://git.duzon.com/abc/abc.git 같이 외부 DNS 통신을 필요로 했다.

 

해결

root@BD1-L-KUBESPAWNER-WORKER-001:/home# systemctl status kubelet

● kubelet.service - kubelet: The Kubernetes Node Agent

   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)

  Drop-In: /etc/systemd/system/kubelet.service.d

           └─10-kubeadm.conf

   Active: active (running) since Thu 2023-11-02 20:00:02 KST; 3 weeks 0 days ago

     Docs: https://kubernetes.io/docs/home/

 Main PID: 132380 (kubelet)

    Tasks: 59

   Memory: 56.6M

      CPU: 2d 4h 38min 52.142s

   CGroup: /system.slice/kubelet.service

           └─132380 /usr/bin/kubelet --hostname-override=C1-L-KUBESPAWNER-WORKER-001 --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1

…

 

systemctl status kubelet kubelet 실행 커맨드를 확인 위와 같이 kubelet 실행 커맨드에 resolv-conf 대한 플래그 선언이 없으면 --resolv-conf=/run/systemd/resolve/resolv.conf 또는 --resolv-conf=/etc/resolv.conf 추가해야합니다.

(기본적으로, 시스템이 DNS 해석을 하는 과정은 /etc/hosts 파일을 확인 후 /etc/resolv.conf 파일에 명시된 DNS 서버로 쿼리를 보내 DNS 변환을 이룹니다.)

 

vi /var/lib/kubelet/kubeadm-flags.env 로 파일 수정창을 연 뒤 --resolv-conf=/etc/resolv.conf를 추가해줍니다.

$ vi /var/lib/kubelet/kubeadm-flags.env

KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1 --resolv-conf=/etc/resolv.conf"

 

그다음 kubelet restart 해주고 정상 작동하는지 status 확인해주면 !