MLOPS/kubernetes

컨테이너에 telnet도 curl도 없을 때 통신 확인하는 방법

개발허재 2023. 4. 19. 10:34

사용자가 접근하는 앱을 배포시, pod에서 curl, telnet과 같은 네트워크 통신 확인 명령어 설치를 안한 경우

k exec -it {pod} -n {namespace} -- bash

# pod 에 bash 쉘로 접속한뒤
echo > /dev/tcp/{ip}/{port}

위 명령어로 해당 pod에서 외부 ip:port 로 통신 확인이 가능합니다. 해당 방법은 bash의 built-in 기능이라고 합니다.

 

[통신 성공시]

해당 포트가 열려있는 경우

echo $?

위 명령어로 다시 확인하면 0으로 응답이 온다. 

 

해당 포트가 열려있지 않은 경우

아래처럼 connection refused 발생한다.

bash: connect: Connection refused
bash: /dev/tcp/10.41.0.42/8881: Connection refused

[통신 실패시]

bash: connect: No route to host
bash: /dev/tcp/10.41.0.123/8888: No route to host