기업들이 컨테이너에 주목하는 이유는 ?
하나의 서버에서 여러개의 어플리케이션을 만들어야하면 각각의 의존성이 필요하고, 서로 영향을 주지 않아야 한다.
기업들이 가장 먼저 시도했던 방법이 가상화 = 가상머신 방법이다. 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
'ETC 코딩 > ETC' 카테고리의 다른 글
[Docker] 도커 컨테이너 기본 명령어 (0) | 2023.12.22 |
---|---|
[Docekr] 도커 이미지와 컨테이너 (0) | 2023.12.22 |
ngrok - 로컬 컴퓨터의 개발 환경을 인터넷으로 공유해주는 툴 (mac) (0) | 2023.06.30 |
Mac M1/M2에서 Brew 설치하기 (0) | 2023.05.24 |
[Node] canvas 패키지 설치 실패 (0) | 2023.05.24 |