성장일기/Kubernetes

쿠버네티스 기본 네트워크 개념 ( Pod 통신 )

지추월자 2023. 11. 16. 11:46
반응형

쿠버네티스는 기본적으로 네트워크 개념은 다음 2가지를 기본으로 합니다.

1. Pod는 NAT 없이 다른 노드 의 다른 모든 Pod와 통신할 수 있습니다.

2. 노드의 에이전트(예: 시스템 데몬, kubelet)는 해당 노드의 모든 Pod와 통신할 수 있습니다.

3. Pod 내의 컨테이너는 네트워킹을 사용하여 루프백을 통해 통신합니다 .


현재 노드에는 아래와 같이 deployment 오브젝트가 배포되어 있습니다. 이러한 Pod들이 서로 다른 노드에 배포되어있지만 통신이 가능하다는 것을 보여드리겠습니다. 

현재 해당 pod들은 nginx 이미지를 이용하여 배포된 상황이고 해당 내용에는 통신이 되는지 체크하기 위함이니 해당 pod에 접속해서 다른 pod들과 통신이 가능한지 확인해보겠습니다. 

서로 다른 노드에 배포되어있지만 해당 pod들이 서로 통신 되는 것을 증명하는 것이라고 볼 수 있겠습니다. 즉, 쿠버네티스는 노드에 배포된 pod들은 기본적으로 서로 통신이 되는 것이 기본 컨셉이라는 것을 인지하면 좋겠습니다. (단, (의도적인 네트워크 분할 정책 제외)

자 이번에는 Pod 내에서 루프백을 지원한다고 하니 루프백을 이용해서 통신이 가능한지 확인해보겠습니다.

해당 pod 에는 2개의 컨테이너가 구동중입니다.

이제 web-server라는 컨테이너 접속해서 database에 루프백으로 통신이 되는지 확인해보겠습니다. 

자, 이렇게 localhost 루프백을 이용해서 바로 통신이 가능하다는 것을 확인할 수 있습니다.

쿠버네티스의 기본적인 네트워크 개념이니 인지하시죠!!! 

 

참고 문서 : https://kubernetes.io/docs/concepts/services-networking/network-policies/

반응형