ETC 코딩/ETC

[Docker] 도커와 쿠버네티스를 이용한 서비스 운영

세리둥절 2023. 12. 22. 14:02
반응형

기업들이 컨테이너에 주목하는 이유는 ?

하나의 서버에서 여러개의 어플리케이션을 만들어야하면 각각의 의존성이 필요하고, 서로 영향을 주지 않아야 한다.

기업들이 가장 먼저 시도했던 방법이 가상화 = 가상머신 방법이다. Host OS -> Guest OS

가상머신의 단점은 CPU를 emulation하는 과정에서 overhead가 발생하고 성능이 떨어지고 비용이 증가한다.

 

컨테이너 기술은 Guest OS를 띄우는 것은 아니지만 Host OS의 커널을 공유해서 사용한다. 컨테이너 안에 App Binary와 의존성을 띄우게 되어 경량화되었고, 가상머신 방법에 비해서 overhead가 줄어들고 성능은 높아졌다.

 

컨테이너 기술에서 주목받는 오픈소스 라이브러리가 docker (2013)이다. Kubernetes = Container Orchestration 쿠버네티스는 서버 여러대에서 여러 컨테이너를 어떻게 잘 관리할 지 고민하는 기술이다. 구글의 Kubernetes

 

 

 

docker 및 docker compose 설치

- docker for Desktop 설치 (docker / docker-compose) 
- kubectl 설치
- kustomize 설치
- minikube 설치

 

Docker for Desktop

기본적으로 도커는 리눅스 컨테이너를 관리하는 기술이다. 맥 운영체제에서 도커를 사용할 수 있도록 추가적인 경량 가상화 기술을 사용

brew install --cask docker
docker
docker-compose

 

 

Kubectl & Kustomize 설치

Kubectl 이란? 쿠버네티스를 위한 command line 도구. 쿠버네티스의 API 서버와 통신하여 사용자 명령을 전달할 수 있는 CLI 도구이다

Kustomize 이란 ? 쿠버테니스의 매니페스트 파일을 좀 더 효율적으로 관리할 수 있도록 도와주는 도구이다. Kubectl 안에 들어가서 내장되어 있음 (양대산맥 중에 헬름 있음)

 

brew install kubectl
brew install kustomize

kubectl version
kustomize version

 

 

 

 

minikube 설치 및 쿠버네티스 클러스터 구성

minikube는 가상환경을 사용하여 쿠버네티스 클러스터를 구현. 학습환경으로 활용하기 좋다. 실제 운영환경에서는 쓰기는 어렵다. 

brew install minikube

minikube start --driver docker
minikube status
kubectl cluster-info

 

반응형