ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubernetes
    Back-End/Kubernetes 2021. 9. 9. 17:15
    728x90

    Kubernetes

     

    - kubernetes란, 컨테이너를 쉽고 빠르게 배포, 확장시켜주고 컨테이너들의 관리를 자동화해주는 오픈소스 플랫폼이다.

     

     

    - 도커의 등장 이후, 많은 어플리케이션이 도커 컨테이너를 기반으로 활용이 되었다.

    - 하지만, 컨테이너를 여러 서버에서 수 십, 수 백개를 실행하게 되면서 이들의 관리가 쉽지 않게 되었다.

    - 코드를 작성하고, 이를 이미지화 한 뒤, DockerHub에 배포(ship)하고, 해당 이미지를 pull해서 사용하는 방식에서, 추가적인 작업이 필요하다.

     

    왜 Kubernetes가 필요할까?

     

     

    - 여러 서버에서 컨테이너를 실행하려면, 일일이 서버마다 CLI 명령어를 입력해야 한다.

    - 또한, 컨테이너를 실행할 때 여러 개의 서버 중에 컨테이너가 실행중이지 않은, 놀고 있는 서버에서 우선적으로 실행을 해야 한다.

    - 또한, 버젼 업을 하고 문제가 생겨 다시 버젼을 낮추는 롤백을 진행하는 등의 작업을 일일이 서버마다 작업을 하는 것은 비효율적이다.

     

    - 여러 서버에서 띄워 놓은 컨테이너들이 죽을 경우, 조치를 취하기 위해 하나하나 에러 로그를 보고 다시 컨테이너를 띄우는 등의 작업을 해야 한다.

     

    - 이러한 컨테이너 배포 관리를 위해 여러 Container Orchestration(컨테이너 배포, 관리도구)들이 등장을 하였고, 그 중에서 가장 많이 사용되게 된 것이 Kubernetes이다.

     

    Kubernetes 아키텍쳐

    - 쿠버네티스는 Desired State 를 활용하여 작동한다. 

     

    Kubernetes 아키텍쳐(오브젝트)

     

    - 쿠버네티스는 컨테이너를 직접 관리하지 않고, Pod을 통해 컨테이너를 감싸서 관리한다.

    - Pod은 각 클러스터에서 고유한 IP를 할당받으며, 하나의 Pod에 여러 개의 컨테이너가 존재할 수 있다.

    - ReplicaSet은 여러 개의 Pod을 관리한다. Pod의 갯수를 늘려주거나, 줄여주거나 한다. 

    댓글

Designed by Tistory.