Etc/Kubernetes ⚒️

[쿠버네티스] 쿠버네티스(Kubernetes, k8s)란?

z.zzz 2023. 6. 21. 21:21

쿠버네티스란?

쿠버네티스란 컨테이너를 관리하는 툴이다.

즉, 컨테이너화된 애플리케이션의 자동 배포, 스케일링, 재시작 등을 제공하는 관리시스템이다.


개발, 배포에 항상 쿠버네티스가 필요한가?

<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