이전 포스팅에서 가상머신의 설치 및 환경설정까지 했었다. Kafka 실습 (1) - 환경설정
이번에는 Docker 및 Docker-compose를 설치해보자.
Docker Install
우선 설치에 앞서 sudo yum -y install
명령어를 통해 업데이트 먼저 한다.
프로그램
-> 시스템 도구
-> 터미널
에서 위 명령어를 입력 후 모든 설치가 완료되면
sudo yum -y install docker
를 입력하여 Docker를 설치한다.
정상적으로 설치가 되었다면 docker -v
버전확인 명령어를 통해 확인한다.
업데이트 (2023-05-12)
이제 위의 방식대로 하면 버전이 너무 낮아 최신 방법으로 기록된 게시물으르 이용할 것 !
Docker-compose Install
Docker-compose
는 Docker Container 들을 한꺼번에 묶어서 yaml(yml) 정의한 파일을 실행하여 관리하는 툴이다.
아쉽게도 Docker를 설치할 때 같이 설치해주지 않는다. 다음 링크에 따라 별도의 설치가 필요하다.Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
(2022-04-22 Update)
만약 버전확인이 되지 않는다면 심볼릭 링크를 추가한다.
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
위 명령어들을 차례대로 입력 하여 설치한 뒤 정상적으로 설치되었는지 버전확인을 한다.
mac
은 위의 방식으로 하려고 하니 다양한 문제가 발생함. SIP 해제 해도read-only file system
에러가 나타남.
복구 모드 터미널에서csrutil disable
로 SIP 해제 후에mount -uw /
를 실행해도 복구 모드에서만 실행되고
실제 사용하려고 부팅 후 터미널에서 확인해보면 되지않음.
그래도 해보고 싶으면 복구모드 진입은 다음과 같음.
sierra 12 버전 이전은cmd+R
부팅 시 길게 누르고 있으면 진입.
이후 버전 또는 m1 은 전원 버튼을 길게 누르고 있으면 진입. 유틸리니 탭 > 터미널을 실행 후csrutil status
로enabled
확인이 된다면csrutil disable
입력하면 SIP가 해제된다.reboot
재시동.
mac 사용자는 brew
명령어를 통해서 쉽게 설치
brew install cask docker
docker -v
brew install cask docker-compose
docker-compose -v
Docker-compose 와 Kubernetes
요약
도커는 이미지를 만들고 컨테이너에 띄우는 도구
이고 쿠버네티스는 도커를 관리하는 툴
이다.
쿠버네티스의 탄생설화?
- 도커라는 쉽게 컨테이너를 만드는 서비스가 탄생을 하였다.
- 도커는 낮은 진입장벽으로 큰 인기를 얻게 되었고, 그로 인해 상용서비스에도 많이 도입되었다.
- 그런데 문제는 도커 컨테이너를 많이 만드는데 관리가 쉽지 않은 상황이 왔다.
- 그러다 보니 도커를 관리하는 플랫폼이 필요하게 되었다.
쿠버네티스
도커 컨테이너를 관리 하는 것을 도커 오케스트레이션이라고 한다.
그런 작업을 하는 것은 쿠버네티스, 도커 스웜, ecs 등이 있었다.
즉 쿠버네티스는 container를 관리하는 플랫폼
결국 쿠버네티스와 도커는 무슨 관계..?
쿠버네티스 안에서는 pod( a group of containers)이라는 존재가 있다. 즉 쿠버네티스는 pod을 만들어서 container를 관리하는 플랫폼이고, docker의 대표(?) 서비스는 container다
약간의 혼돈의 카오스가 있었지만 결국
- docker -> container를 만드는 서비스
- kubernetes -> container(ex. docker)를 관리 해주는 서비스
kubernetes는 도커가 아닌 다른 컨테이너 서비스 역시 관리가능하다! 내가 어디선가 듣기로는… docker와 비슷한 데 더 좋은 서비스를 구글에서 만들어서 쓰기때문에 내부적으로는 docker는 안쓴다 카더라….
그럼 쿠버네티스와 도커 컴포즈는 무슨 관계..?
docker-compose는 내가 시작할 때 container를 선언해주는 것이다. node나, cluster개념은 없다.
그런데 둘다 configuration files (Yaml)을 만들수 있다. 아마 이 이유 때문에 둘의 관계에 혼란이 오게 만들어 주는 것 같다.
- Docker Compose는 오케스트레이션없이 다중 컨테이너 Docker 응용 프로그램을 정의하고 실행하기위한 도구입니다.
- Kubernetes에는 pod이란 개념이 있는데 그것은 여러 컨테이너들을 가지고 있고, 사용 가능한 노드 사이의 분배 개념(클러스트링) 해준다.
여기서 잠깐 짚고 넘어가는 쿠버네티스의 장점은
- 스케쥴링을 잘해줌
- 죽어도 스스로 잘 살려줌
- 확장성
- 로드 밸런싱
- 롤아웃/롤백이 자동으로 진행
- 설정을 관리
'DevOps > Kafka' 카테고리의 다른 글
Kafka 실습 (3) - Zookeeper + Kafka + Kafka Manager 설치 및 간단예제 (0) | 2021.02.15 |
---|---|
Kafka 실습 (1) - 환경설정 (1) | 2021.02.15 |
Apache Kafka Summary (1) | 2021.02.04 |