폐쇄망에서 앤시블을 이용한 쿠버네티스 설치 시 worker node(centos7.9)에서 join 시도 시 hostname을 찾지 못하여 지속적인 NotReady 상태가 되는 문제 발생
DNS를 찾지 못하는 문제임으로 /etc/hosts
를 수정하면 된다고 생각했지만!
똑같이 DNS를 못 찾는 문제 발생
centos7 worker node에서
journalctl -xe | grep err
와 /var/log/messages
의 에러로그를 확인하던 도중 DNS 관련 되서 눈에 보이는 kubelet에 /run/systemd/resolve/resolv.conf
을 찾을 수 없다는 에러를 발견하여
그럼 kubelet이 실행 될 때 DNS를 못찾는게 문제가 아닐까?
/var/lib/kubelet/config.yaml
를 확인 후
ubuntu2204에는 resolvConf: /run/systemd/resolve/resolv.conf
옵션이 있고
centos에는 없어야하지만 centos worker node에 해당 옵션이 존재하는 것을 확인하여(저런게 없는데 kubelet 재시작 후 join하니 잘 연결됨
그래서 앤시블 소스상에서 KUBELET_EXTRA_ARGS
로 ubuntu면 해당 옵션을 넣고
centos면 기본인 /etc/resolv.conf
경로로 설정 했더니 잘 된다.
왜 저 옵션이 centos에서 박혀있을까? 앤시블에서 내가 뭐 잘 못 돌렸나...?
/etc/hosts
에 값은 안넣어도 된다.