ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • kubernetes Tutorials 1. 미니큐브 사용해보기
    DevOps/Kubernetes 2020. 4. 22. 22:27

    쿠버 네티스를 통해 클러스터 관리나 컨테이너화 된 App을 관리할 수 있다.

     

    최종적인 학습목표

     

    1. 어떻게 컨테이너화 된 (도커화 된) App을 클러스터에 배포할까

     

    도커 이미지로 만든 것들은 어떻게 클러스터에 배포할 수 있을까 ( Docker swarm이 아닌 쿠버 네티스에 배포 )

     

    2. 어떻게 배포 인스턴스를 늘리거나 줄이는 스케일을 할 수 있을까

     

    3.  어떻게 새 버전을 배포하고 디버깅 하는지

     

     

    튜토리얼에 보면 Katacode라는 것을 통해 가상 머신을 웹 브라우저에서 진행할 수 있다고 한다. 따라서 미니큐브(조그

    만한 쿠버 네티스)를 웹 브라우저에서 실행하여 따로 설치가 필요 없이 Interactive 하게 진행해보자.

     

     

    쿠버 네티스로 무엇을 할 수 있을까?

     

    요즈음 대부분의 사용자들은 웹 서비스에 무중단 서비스를 제공하는 것을 기대하며 개발자들 역시 새 버전을 하루에도 몇 번씩 배포하는 것을 기대한다. 이러한 목표를 달성하기 위해 소프트웨어를 패키징해야 하며 이러한 일은 컨테이너화를 통해 가능하다. 그렇게 했을 때 downtime 없이 App을 갱신하고 배포할 수 있다.

     

    쿠버네티스는 애플리케이션 컨테이너를 클러스터에 분산시키고 스케줄링하는 일을 보다 효율적으로 자동화하는 역할을 하고 프로덕션 환경에서 얼마든지 사용가능하며, 오픈 소스 플랫폼이다. 

     

     

     

    우선 쿠버 네티스 클러스터란 무엇인지 미니큐브란 무엇인지 알아보자.

     

    쿠버네티스 클러스터

     

    - 컨테이너화 된 app을 배포할 수 있게끔 해준다. 도커 이미지를 배포할 수 있게 해주는 클러스터

     

    - 어떤 특정 머신에 배포하라고 지시하는 게 아닌 쿠버 네티스란 클러스터에게 던지고 이 머신이 알아서 어딘가에 배포하게 된다.

     

    - 이런 새로운 배포 모델을 사용하려면 App은 특정 컴퓨터 host에 묶이지 않은 상태로 패키징 돼야 된다. 즉 컨테이너화 된 App을 말하고 있다. 

     

    - 쿠버 네티스는 이런 App을 어디에 배포할지를 자동화하며 좀 더 효율적인 방법으로 클러스터 안에다 App을 어떻게 배포하고 스케쥴링할지( 줄이거나 늘리거나 ) 등도 자동화하였다.

     

     

     

    쿠버 네티스 클러스터의 구성 2가지

     

    Docker swarm에서는 worker나 Manager 둘 다 특정 이미지를 띄울 수 있지만 쿠버 네티스의 Master는 관리만 하고 Nodes들이 띄우는 역할을 하는 것처럼 보인다.

     

    1. Master 

    - 클러스터를 관장하는 매니저

    - App의 스케쥴링, 관리, 실행 멈추는 일등을 관리하며 스케일링 ( 컨테이너를 더 많이 띄우던지 줄이던지 ) 새 버전을 배포해 나가는 과정 등을 관리한다.

     

     

    2. Node

    - App을 실제로 실행하는 worker machine의 역할을 한다.

     

    - 각각의 노드는 Kubelet을 가지고 있으며 Kubelet은 한 노드를 관리하기 위한 에이전트고 이 큐 블렛은 쿠버 네티스 manager와 의사소통을 한다.

     

    - 노드는 Docker 등의 컨테이너 작업을 핸들링할 수 있는 툴을 가지고 있어야 한다.

     

     

    Kubernetes Api

     

    - 클러스터는 프로덕션 트래픽을 다룰 수 있는데 최소 3개의 노드가 필요하게 된다. App을 쿠버 네티스에 배포할때 master에게 App container을 실행하라고 한다. 그러면 master는 그 컨테이너들을 cluster node들에게 실행하도록 스케쥴링하게 된다. 그러면 노드는 Kubelet을 통해 master와 의사소통 하게 되는데 그때 사용하는 것이  Kubernetes Api이다.

     

    - 마스터가 Kubernetes Api를 노출시키니 그 Api를 사용해서 쿠버네티스  클러스터에게 일을 시킬 수 있다.

     

     

    미니큐브?

     

    쿠버 네티스의 lightweight 한 버전이고 로컬 머신의 VM을 만들어주며 한 개의 노드만 들어있다.

     

    이 미니큐브가 설치돼있는 온라인 터미널을 사용해보자!

     

     

    클러스터 정보

     

    다음과 같이 하나의 노드만 들어있는 것을 알 수 있다.

Designed by Tistory.