kubernetes

둥냥둥냥둥·2024년 1월 8일
0
post-thumbnail

kubernetes


쿠버네티스란?

쿠버네티스는 컨테이너 오케스트레이션 도구의 일종이다.

컨테이너 오케스트레이션이란 시스템 전체를 통괄하고 여러 개의 컨테이너를 관리하는 일을 말한다. 그 이름 그대로 오케스트라를 떠올리면 이해가 쉽다. 지휘자가 전체 악단을 지휘하듯, 여러 개의 컨테이너를 지휘하는 도구가 바로 쿠버네티스다.

쿠버네티스는 k8s라고 줄여쓰기도 한다.

  • k를 시작으로 ubernete s사이의 8개의 글자가 있다는 의미의 약칭이다.

쿠버네티스를 일반적인 프로그래머가 관리는 드물다.

최근 쿠버네티스가 유행을 타고는 있지만 그 본질상 일반적인 프로그래머가 쿠버네티스를 활발하게 사용할 일 많지 않다. 왜냐면 쿠버네티스는 앞서 설명했듯이 '여러 개의 컴테이너(=서버)' 관리하는 도구이기 떄문이다.

여기서 말하는 '여러 개'란 동일한 구성의 컨테이너의 여러 세트를 말한다. 즉, 다음 그림과 같이 많은 수의 서버로 구성되는 대규모 시스템 관리할 일이 많은가, 라는 얘기가 된다.

그림. 01

이 점을 감안하면 아무리 대규모 시스템을 개발하는 프로그래머도 대규모 서버군을 프로그래머가 직접 관리할 일이 드물 듯이 쿠버네티스를 사용할 일도 그문 것이다.

다마 쿠버네티스로 어떤 일을 할 수 있는가에 대한 지식은 시스템을 개발할 때 유용할 수 있다. 쿠버네티스로 관리하는 시스템은 이를 전제로 개발해야 한다. 그렇지 않다면 쿠버네티스의 이점을 제대로 살릴 수 있다.

마찬가지로 프로젝트 매니저나 시스템 엔지니어를 담당하는 사람도 쿠버네티스로 어떤 일을 할 수 있는가는 잘 이해해야 한다.


k8s는 여러 대의 컨테이너가 여러 대의 물리적 서버에 걸쳐 실행되는 것을 전제로 한다.


지금까지 배운 도커는 한 대의 물리적 서버에서 실행되는 경우가 많았지만 쿠버네티스는 여러 대의 물리적 서버가 존재하는 것을 전제로 한다. 또 이 물리적 서버 한 대 한 대마다 제각기 여러 대의 컨테이너를 실행한다.


그림 02 

쿠버네티스는 여러 대의 물리적 서버가 존재한다는 것을 전제로 한다.

이렇게 여러 대의 서버에서 일일이 컨테이너를 실행하고 관리하기는 쉬운 일이 아니다. 쿠버네티스는 바로 이를 위한 도구이다.

예를 들어, 20개의 건테이너를 만들려면 docker run 커맨드를 20번 실행해야 할 것이다. 내가 가장 싫어하는 작업이다.....

도커 컴포즈를 사용한다 해도 물리적인 서버가 여러 대라면 반복 작업은 사라지지 않는다. 거기다 어떻게든 컨테이너를 생성해 실행했다 해도 물리적 서버를 일일이 모니터링하며 장애가 일어나면 컨테이너를 다시 실행해야 하는 것은 물론이고 컨테이너를 업데이트하려면 다시 한번 큰 수고가 따른다. 이런 날은 야근이다...

쿠버네티스는 이렇게 번거로운 컨테이너 생성이나 관리의 수고를 덜어주는 도구이다. 도커 컴포즈에서 사용되는 컴포즈 파일과 비슷한 정의 파일(매니페스트 파일)만 작성하면 이 정의에 따라 모든 물리적 서버에 컨테이너를 생성하고, 생성한 컨테이너를 관리해 준다.

profile
Java 먹자

0개의 댓글