본문으로 바로가기

Kafka 실습 (2) - Docker 및 Docker-compose 설치

category DevOps/Kafka 2021. 2. 15. 11:45
반응형

이전 포스팅에서 가상머신의 설치 및 환경설정까지 했었다. Kafka 실습 (1) - 환경설정
이번에는 Docker 및 Docker-compose를 설치해보자.


Docker Install

우선 설치에 앞서 sudo yum -y install 명령어를 통해 업데이트 먼저 한다.

프로그램 -> 시스템 도구 -> 터미널 에서 위 명령어를 입력 후 모든 설치가 완료되면

sudo yum -y install docker

를 입력하여 Docker를 설치한다.

정상적으로 설치가 되었다면 docker -v 버전확인 명령어를 통해 확인한다.

업데이트 (2023-05-12)

이제 위의 방식대로 하면 버전이 너무 낮아 최신 방법으로 기록된 게시물으르 이용할 것 !

Docker 설치


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 statusenabled 확인이 된다면 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이란 개념이 있는데 그것은 여러 컨테이너들을 가지고 있고, 사용 가능한 노드 사이의 분배 개념(클러스트링) 해준다.

여기서 잠깐 짚고 넘어가는 쿠버네티스의 장점은

  • 스케쥴링을 잘해줌
  • 죽어도 스스로 잘 살려줌
  • 확장성
  • 로드 밸런싱
  • 롤아웃/롤백이 자동으로 진행
  • 설정을 관리

출처 : https://joosjuliet.github.io/kubernetes/

반응형