본문 바로가기

반응형

Docker 시작하기 - RestAPI편

(5)
5) 쿠버네티스 CircleCI를 이용해 무중단 배포하기 기본적인 쿠버네티스의 작동 방식은 알게 되었고. 이제 자동으로 개발서버에 소스를 반영하는 방법으로 공부해 보자. 여러가지 CI/CD툴이 있겠지만 오늘은 Circleci 를 통해 무중단 자동배포를 해보도록 하겠다. 배포 과정은 아래와 같다. 1) 소스를 개발하고 Github에 push 한다. 2) circleci에 미리 github와 연동되어진 프로젝트로 build가 작동한다. 3) 2번에서 build와 동시에 docker push를 한 이미지를 쿠버네티스 master node의 instance에 이미지 update shell를 실행한다. 간단히 위와 같은 과정을 거치게 된다. 1번 과장은 생략. 다들 github는 다들 사용하니깐.. 2번 부터 알아 보자. circleci를 private으로 설치를 할 ..
4) Kubernetes 로 Docker 배포하기 이전까지 docker를 run 하고 run 된 docker의 log 를 어떤식으로 통합해서 관리하는지에 대해 공부했다. 이제는 docker에 대한 배포 관리를 어떻게 할지 공부해 본다. 프로젝트를 진행하면 굉장히 많은 docker images들이 생길것이다. 인증API 부터 여러 기능의 API들과 front End 부분의 nginx들도 있을것이고 이런 docker images들의 배포 와 실행을 효율적인 관리가 필요해져 생겨난것이 쿠버네티스 이다. 쿠버네티스 Doc 참조 : https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한..
3) Spring Boot Rest API Docker log 보기 docker 상태에서 로그 확인을 하기 위해 2가지 방법을 테스트 해봤다. 1) docker run시에 -v 옵션으로 logback 에 설정한 file appender의 설정에 따른 설정 파일을 외부 volumn에 마운트하여 모아서 보는 방법 - 장점 : 다른 package의 설치나 설정없이 docker run 옵션을 추가하는것만으로 해결가능함. - 단점 : 새로운 docker 를 run 할때 마다 volumn 옵션이나 run 옵션을 수정할 필요가 생김. 2) ELK 를 사용하여 docker 로그를모아서 보는 방법. - 장점 : kibana 로 로그를 UI를 통해 쉽게 분석 가능함. - 단점 : ELK에 대한 러닝커브가 생기고 ELK에 대한 설정과 spring boot에 logback에 logstash ..
2) Spring Boot REST API를 Docker Image로 만들기 앞에서 우분투 서버에 Docker를 설치하고 Hellow world 까지 테스트를 마쳤다. 이제 만들어둔 Spring boot Rest API jar 파일을 서버에 올리고 Docker image를 만들어보자. 프로젝트 폴더 밑에 Dockerfile을 만들자. ( 어디에 있어도 상관은 없는데 Dockerfile 의 형상관리를 위해서..) Dockerfile은 아래처럼 만들었다. # Start with a base image containing Java runtime FROM java:8 # Add Author info LABEL maintainer="devracoon@naver.com" # Add a volume to /tmp VOLUME /tmp # Make port 8080 available to th..
1) Docker 시작하기 Docker란 뭘까? Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼 이라고 한다. 컨테이너 기반?? 컨테이너라 함은 우리가 흔히 말하는 운송수단으로 물건을 실어 나를때 쓰는 커다란 상자를 말하는것 서버에서 컨테이너라고 하는것도 비슷하게 다양한 프로그램을 독립적으로 담아 놓고 배포하고 관리할 수 있는 단위라고 생각하면 되는것 같다. 컨테이는 가상화 기술의 하나라고한다. 그렇다 기존에도 VMWare 나 VirtualBox 같은 가상화 기술이 있었다. Docker와 기존 가상화 기술의 차이점은 아래 그림과 같다. 그림에서 보면 Docker는 App를 구동하기 위한 Bins와 Libs 만 가지고 Docker Engine 위에서 구동하는 모습을 볼 수 있다. 이것이 가능하게 한것은 리눅스 컨테이너 기술을 ..

반응형