관리 메뉴

차근차근

쿠버네티스 (Kubernetes) 본문

대학교/etc

쿠버네티스 (Kubernetes)

SWKo 2020. 7. 30. 01:06

1. 쿠버네티스 (Kubernetes)

  • 쿠버네티스는 컨테이너를 관리하기 위한 툴이다.
  • 만약 토커를 이용해서 (Nodejs 혹은 장고)웹사이트를 배포하려고 한다면, 즉, 그걸 도커 컨테이너 안에 넣어서 AWS로 보내고 싶다면 이 프로세스에서는 쿠버네티스를 알아야할 이유가 없다.
  • 왜냐면 이때는 그냥 도커를 업로드하고 배포하는 것이 전부이기 때문이다.
  • 알다시피 도커는 여러개의 컨테이너를 갖고 있을 때 쓰인다.
  • 예를 들어 만약 MSA를 가지고 있다면, 그래서 어떤 컨테이너는 유저 업로드만 다루고, 어떤 컨테이너는 인증 만 다루고 어떤건 결제만 다룬다면 이 모든 컨테이너들은 동시에 업로드가 되어야 한다. 
  • 배포를 할 때는 그렇게 하면 되긴 하는데 많은 컨테이너를 갖고 있다면 문제가 생길 수 있다.
  • 예를 들어, 컨테이너 하나가 죽으면 재빠르게 해당 컨테이너를 재시작해야 한다. 중요한 파트일 수 있기 때문이다.
  • 바로 이때 쿠버네티스가 등장한다.
  • 컨테이너들을 바라보면서 문제가 있는지 없는지 체크하는게 아니다.
  • 쿠버네티스로 하여금 (예를 들면) 최소 5개의 컨테이너들이 작동하게끔 할 수 있다.
  • 그리고 그 중 하나라도 죽으면 쿠버네티스가 그 죽은 컨테이너를 재시작 할 것이다. 이것이 쿠버네티스를 사용하는 첫번째 이유이다.
  • 즉, 컨테이너들의 모니터링을 해주는 것이다. 자동으로 재시작을 해주니까 발뻗고 자도 된다.
  • 컨테이너가 많은 경우 쿠버네티스가 유용할 것이다.
  • 두번째 장점은 다음과 같다. 또다른 예시로 만약 1만명의 유저가 접속했을 경우, 그러나 내 웹/앱은 준비가 되지 않았을 경우, 쿠버네티스는 자동으로 새로운 컨테이너들을 만들 수 있다. 해당 웹사이트의 니즈를 수용할 수 있게 말이다.
  • 쿠버네티스가 알아서 해당 웹 니즈에 맞춰 컨테이너들을 준비하고 사람들이 떠나고 니즈가 줄어들면 컨테이너를 지정해둔 최소 숫자로 자동 조정 될 것이다.
  • 이전에는 수동으로 해야했지만 이제 쿠버네티스가 도와준다.
  • 세번째 장점은 다음과 같다. 클라우드에 5개의 컨테이너가 있다고 해보자. 코드의 버그를 고치고 싶다거나 버전을 업데이트 하고 싶은 경우 어떻게 해야 할까?
  • 쿠버네티스가 없다면 컨테이너들을 끄고 새로운 버전을 올리고 다시 컨테이너들을 켜야할 것이다.
  • 그 말은 나의 웹사이트가 잠시 다운되어야 한다는 의미이다. 
  • 쿠버네티스와 함께라면 아주 심플하게 컨테이너의 신규 버전을 차례로 업데이트 해줄 것이다. 웹사이트가 다운되는 경우도 물론 없다.
  • 컨테이너로 작업할 때 자동화해야할 것은 은근 많다. 새로운 버전을 배포하거나 컨테이너 사이즈를 조정한다거나 죽은 컨테이너를 재시작한다거나 많은 컨테이너가 필요한 앱/웹 서비스를 운영한다면 쿠버네티스가 필요할 것이다.
  • 상황과 내가 하고자 하는 작업에 따라 쓸지 말지를 선택하는 것이다.
  • 결론은, 쿠버네티스는 많은 컨테이너 관리에 유용하다.
0 Comments
댓글쓰기 폼