Kube proxy

클러스터 내부에서 pod는 다른 pod들과 통신을 할 수 있다. 클러스터 내부의 가상 네트워크를 사용해서 pod들끼리 통신이 가능하다.

만약 웹서비스를 배포하였을 때, 한쪽에는 서비스를 다른 한쪽에는 DB를 배포했다고 하자. 이 때, 서비스는 DB를 사용하기 위해 접속을 시도할텐데 DB의 접속 정보가 언제나 똑같다는 보장이 없다. 그래서 우리는 DB를 사용하기 Service를 생성한다. 서비스는 pod를 사용하기 위해 ip나 이름을 통해 접근할 것이다.

그럼 서비스는 어떻게 pod에 접근하고 사용하는 것일까? 서비스는 실제로 pod가 속한 네트워크에 접속하지는 못한다. 왜냐하면 서비스는 실존하는 것이 아니기 때문이다. 서비스는 가상의 컴포넌트로 쿠베네티스의 메모리에만 존재한다. 그렇다면 서비스는 다른 클러스터로 어떻게 접근하는 것일까? 바로 kube proxy를 사용해서 가능하다.

Kube proxy는 각 클러스터의 노드마다 존재한다. 서비스가 생성되는 것을 지켜보고 새로운 서비스가 생성되면 해당 서비스를 이용해서 pod에 접근한다. 이 때, IP table을 사용해서 접근한다.

IPTable을 각각 가져서 해당 테이블을 통해 접근하는데 이에 관한 내용은 방대하므로 나중 코스에서 다룬다고 한다.