이번 시리즈는 kubeflow를 설명하기 앞서 쿠버네티스에 대해 내가 이해한걸 정리 한 글이다.
쿠버네티스의 전체적인 기능을 설명하는 것이 아닌 딱 사용할때 동작하는 간단한 원리를 정리하였다.
쿠버네티스 공식 홈페이지에서 설명되어 있는 글에는 아래와 같이 설명되어있다.
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.
우선 저 글만 봤을 때 쿠버네티스를 이해하기 위해서는 컨테이너부터 개념을 잡고 들어가야할 것 같다.
위 그림은 컨테이너를 쉽게 설명하는 그림으로써 배포 방식은
물리 서버에서 배포 -> 가상화된 서버에서 배포 -> 컨테이너 배포
예를 들어, 웹서버를 컨테이너로 동작을 하는대 도커일 경우
(실제 서버) IP:PORT -> (컨테이너) IP:PORT 로 포트포워딩을 해줘야함
위 사례 처럼 컨테이너로 웹서버를 동작했는대 API를 만들어서 동작할때 포트포워딩을 해줘야한다. 하나의 웹서버는 편하지만 여러개의 웹서버를 동작하거나 클러스터 서버일 경우 하나하나 일일히 연결 시켜줘야한다.
쿠버네티스에서는 이러한 네트워크 트래픽을 로드밸런싱하고 배포한 컨테이너가 안정적으로 이루어지게 할 수 있거나, 버전 롤백, 자동화 복구 등등 많은 기능을 제공한다. 실제 컨테이너가 동작하는 부분은 각 노드의 컨테이너 런타임에서 동작하는대 논리적으로 개발자가 쿠버네티스를 통하면 하나의 커다란 도커를 사용하는 것처럼 느껴진다.
다음편에서는 쿠버네티스의 간략한 구조를 들어간다.
출처