MLOPS/kubernetes
파드를 위해 다른 DNS 설정이 필요한 경우
개발허재
2023. 12. 3. 14:58
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 를 확인해주면 끝!