[Study]쿠버네티스(Kubernetes)

조혜인·2022년 8월 24일
0
post-thumbnail

📌 쿠버네티스(Kubernetes)란?

  • 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구이다.

    💡 여기서 컨테이너란 도커(Docker)의 컨테이너이다!

  • 클라우드에 최적화 되어있는 도구이다.

  • 많은 수의 컨테이너를 협조적으로 연동시키기 위한 통합 시스템으로써 다양한 API 및 명령행 도구를 제공한다.

  • 컨테이너를 이용한 애플리케이션 배포 외에 다양한 운영 관리 업무를 자동화할 수 있다.

Cluster

  • 쿠버네티스의 여러 리소스를 관리하기 위한 집합체
  • Cluster내부에는 전체를 관리하기 위한 노드인 마스터 노드가 최소 1개 이상은 있어야 한다.

    💡 실제 환경에서는 절대 하나로 클러스터를 구성하지 않으며, 최소 3개 이상의 마스터 노드를 갖는다.

Master Node

  • Master node는 클러스터 전체를 관리하는 역할이다.

Node

  • Master node에 의해 주어진 명령어를 받고 서비스하는 컴포넌트이다.

Pod

  • Docker 컨테이너가 모인 집합체. Docker 컨테이너들을 담고있는 껍데기라고 생각하면 된다.
  • Pod안에는 Docker 컨테이너가 2개 이상도 들어갈 수 있다.
  • Pod는 노드 안에서 무한정 늘어날 수는 없다. 최대한 늘리다가 한계점에 다다르면 노드를 늘려서 파드를 복사해 넣는다.

📌 배포 전략

블루 그린 배포(Blue Green Deployment)

  • 기존 서버를 블루로 두고 새로운 버전의 서버를 그린에 둔다고했을 때 블루에 있던 유저 트래픽을 그린으로 한꺼번에 옮긴다.
  • 이후에도 블루는 계속 대기하고 있다가 그린에 문제가 생길 경우 다시 블루로 트래픽을 옮긴다.
  • 현재 운영중인 서버가 2배 가량의 자원이 필요하다.

카나리 배포(Canary Deploymnet)

  • 일부 유저 트래픽만 새로운 버전의 서버로 보낸 후 문제가 없는지 확인한다. 문제가 없다면 더 많은 유저 트래픽을 새로운 서버로 보내며 이를 반복한다.
  • 예를 들어 유저 트래픽의 15%만 인스턴스 그룹으로 옮겨서 문제없이 동작하는지 확인하고 나머지 유저 트래픽들도 가져오는 전략이다.

롤링 배포(Rolling Deployment)

  • 기존 서버에서 새로운 버전의 서버로 트래픽을 점진적으로 전환한다.
  • 예를 들어 유저 트래픽의 25%만 먼저 옮겨오고, 문제가 없다면 점진적으로 25%씩 지속해서 유저 트래픽을 가져오는 전략이다.
  • 혹은 다른 예시로 기존 서버 중 하나의 컴퓨터를 종료하고 해당 컴퓨터에 새로운 버전을 담아 배포한다. 이후 두 번째 컴퓨터도 마찬가지로 종료하고 새로운 버전을 담아 배포한다. 이런 방식으로 서버 컴퓨터들에 새로운 버전을 배포할 수 있다.

📌 참고(이미지)

profile
코딩은 역시 재밌군

0개의 댓글