NETWORK/docker & 쿠버네티스

도커와 쿠버네티스(1)

영공쁘이 2021. 8. 9. 12:07

◆ 시작하기 전에 알아야 할 개념 

도커: 여러 개의 컨테이너를 묶는 단위로 사용하는 것(LXC(=리눅스 컨테이너) 기반이다)

       - 패키징, 배포, 단순화 등도 한다. 도커엔진: 이미지, 네트워크, 디스크 등의 관리 역할

                      1:1 컨테이너와 프로세스,  이미지 컨테이너(여러 이미지)를 관리

       - 단점: 양이 많아지면 안좋다.

컨테이너: 가상머신을 사용해 각 마이크로 서비스를 격리(isolate)하는 기술, 독립된 공간에서 실행한 가상 환경

컨테이너 오케스트라: vCenter Server

쿠버네티스: 구글에서 사용하는 컨테이너 기술(IT를 운영 및 관리 한다)

하이퍼바이저: 하드웨어 추상화

셸: 커널(=프로세스)에 접근하기 위해 사용하는 것 ex) unix

데몬: 명령어 세트, 관리하는 도구, process

 

◆ 도커 기본 개념

모놀리식: 서비스가 하나의 어플리케이션으로 돌아감, 서버에서 실행, 거대한 하나의 구조

 단점: 로드밸런싱 - 불필요한 것까지 해서 메모리를 낭비함

        종속적인 라이브러리 충돌 - 라이브러리는 서로 다른 기능을 제공하기 때문에 각 기능에 대한 종속성이 필요하다.

                                           (지금 이상태로는 매번 업데이트를 할 때마다 관리가 어렵다.*서로가 충돌되었기 때문)

        조금만 수정해도 다 배포해야 한다.

 

마이크로서비스: 어플리케이션의 기능을 분리하여 관리 (빠르고 배포가 쉽고 효율적(확장 기능(scale out)까지 됨))

                      * scale out: 더 많은 자원에 필요한 서비스를 확장 , 복잡도 감소

  단점: 분산 시스템 - 트랜잭션 보장, 테스트, 배포 관리가 복잡하다.

 

그래서 컨테이너 개념이 나온거다, 새로운 개념이 나온게 쿠버네티스!

 

*마이크로서비스 활용 사례

ELB: 스위치, 현재) AWS에서 사용함

 

◆ 쿠버네티스 : 

다수의 컨테이너를 자동으로 운영하기 위한 오케스트레이션 도구

(많은 시스템을 통합, 컨테이너를 다루는 API 제공)

도커들을 관리하는 기술이다.

 

모델 종류 / 개발자와 시스템 개발자

DevOps: 개발과 IT 운영하는 사람

NoOps : 개발자는 운영 말고 개발하고 배포만 하기(인프라는 굳이 안알아도 됨)