쿠버네티스란?
쿠버네티스란 컨테이너를 관리하는 툴이다.
즉, 컨테이너화된 애플리케이션의 자동 배포, 스케일링, 재시작 등을 제공하는 관리시스템이다.
개발, 배포에 항상 쿠버네티스가 필요한가?
<Case 1>
nodejs로 만든 웹사이트를 도커 컨테이너에 넣어서 AWS로 배포하는 프로세스(한 개의 인스턴스만 사용) : 쿠버네티스 쓸 필요 X
<Case 2>
도커가 여러 개의 컨테이너를 가지고 있고, micro-service architecture를 가지고 있다. 그래서 어떤 컨테이너는 업로드만, 또 어떤 컨테이너는 인증만, 또 다른 어떤 컨테이너는 결제만 다룬다면 이 컨테이너들은 동시에 업로드 돼야 한다. 배포엔 문제가 없으나 운영을 하며 문제가 생기기 시작한다.
쿠버네티스를 쓰는 이유
1. 컨테이너 상태 관리
컨테이너 중 하나가 죽으면 해당 컨테이너가 서비스의 핵심파트일 수 있으니까 빠르게 재시작해야한다. 만약 쿠버네티스가 없다면 수동으로 재시작해줘야 한다. 그러나 쿠버네티스를 사용한다면 예를 들어 최소 5개의 컨테이너들이 작동하게끔 할 수 있고, 이 중 하나라도 죽으면 쿠버네티스가 자동으로 재시작시킨다.
2. 오토 스케일링(Auto Scaling)
1만 명의 유저가 접속했는데 내 웹/앱은 준비가 안된 상태일 때, 쿠버네티스는 해당 웹사이트의 니즈에 맞춰 자동으로 새로운 컨테이너들을 만든다. 니즈가 줄어들면 컨테이너를 지정해둔 최소 숫자로 조정된다. 이전엔 수동으로 했지만 쿠버네티스로 자동화할 수 있다.
3. 무중단 배포를 가능하게 한다.
클라우드에 5개의 컨테이너가 있다. 코드의 버그를 고치거나 버전을 업데이트하고 싶을 때, 수동으론 한다면 컨테이너 끄고 새로운 버전 올리고 다시 컨테이너를 켜야 한다. 이 과정에서 웹서비스가 잠시동안 다운되어야 한다. 그러나 쿠버네티스는 컨테이너의 신규 버전을 차례로 업데이트 해줌으로써 서비스 다운 없이 배포가 가능하다.
본 게시글은 노마드 코더 - 쿠버네티스가 대세가 된 이유 3가지! 강의를 참고하여 작성하였습니다.
'Etc > Kubernetes ⚒️' 카테고리의 다른 글
[Docker] 도커란? 도커 간단 정리 (0) | 2023.06.21 |
---|