개발 이야기/쿠버네티스

쿠버네티스 - 시스템 구조 - 9

석구석구 2021. 7. 11. 00:51

이번 시간에는 간단하게 컨테이너를 둘러싸고 있는 시스템을 알아보자.

 

이전에 이야기했듯이 우리는 직접 컨테이너를 생성하거나 동작시키지 않는다. 파드라는 컨테이너 그룹의 단위로 접근한다. 하지만 파드도 우리가 직접 생성하지는 않는다. 실제로 우리는 레플리케이션을 생성하고 이 친구가 파드를 실행한다. 그리고 그 파드를 서비스로 노출하도록 명령한다.

 

서비스 <-> 파드 <-> 레플리케이션

 

파드

시스템의 가장 중요한 구성 요소는 물론 파드다. 파드는 원하는 만큼의 컨테이너를 포함할 수 있고 자체의 고유한 사설 IP 주소와 호스트 이름을 갖는다.

레플리케이션

파드를 복제하고 항상 실행 상태로 만든다. 어떤 이유로 파드가 사라진다면, 사라진 파드를 대체하기 위해 새로운 파드를 생성한다.

서비스

파드는 일시적이다. 파드를 실행 중인 노드가 실패할 수도 있고, 누군가 파드를 삭제할 수도 있다. 따라서 파드는 언제든 사라질 수 있다. 이러한 상황이 발생하면 사라진 파드는 레플리케이션 컨트롤러에 의해 생성된 파드로 대체된다. 새로운 파드는 다른 IP 주소를 할당받는다. 때문에 서비스가 자연스레 필요해진다. 항상 변경되는 파드의 IP 주소 문제와 여러 파드를 단일 IP와 포트의 쌍으로 외부에 노출시키는 문제를 해결한다. L4를 연상하면 될 것 같다. 서비스의 IP와 포트로 유입된 요청은 서비스에 속해 있는 파드 중 하나에게 전달된다.

 

실행 중인 애플리케이션은 레플리케이션 컨트롤러에 의해 모니터링되고, 실행되며 서비스를 통해 외부에 노출된다.