2023. 10. 10. 11:50ㆍdocker
실습 파일
실습 개요
client -> 80 -> proxy server
1.frontend 9000
2.order 9001 -> GET "/api/order"
3.store 9003 -> GET "/api/store/ -> 메뉴
4.user 9002 -> POST "/api/user"
이미지 빌드
python flask -> docker base image : python:3.8-slim-buster
각 폴더에 Dockerfile 생성하자. 내용은 아래와 같다.
FROM python:3.8-slim-buster
WORKDIR /python-docker
COPY . .
RUN pip3 install -r requirements.txt
CMD [ "python3", "app.py" ]
모두 생성 후 아래 명령어를 각 폴더 위치에서 입력하자.
docker build -t front-docker .
docker build -t order-docker .
docker build -t store-docker .
docker build -t user-docker .
Traefik
Traefik은 컨테이너 오케스트레이션 플랫폼에서 사용되는 리버스 프록시 및 로드 밸런서 역할을 수행하는 오픈 소스 소프트웨어다.
Traefik의 주요 특징과 개념
- 리버스 프록시 : Traefik은 HTTP 및 TCP 레벨에서 작동하는 리버스 프록시로서 클라이언트 요청을 백엔드 서비스로 라우팅한다. 이를 통해 여러 개의 백엔드 서비스에 대한 로드 밸런싱, 트래픽 분배, SSL 종료 및 인증을 처리할 수 있다.
- 동적 설정 : Traefik은 동적으로 백엔드 서비스를 검색하고 관리할 수 있는 능력을 갖추고 있다. 이는 컨테이너 오케스트레이션 플랫폼 (예: Docker, Kubernetes)에서 자주 사용된다. 새로운 컨테이너가 생성되면 Traefik은 자동으로 해당 서비스를 감지하고 라우팅 설정을 업데이트 한다.
- 통합 및 미들웨어 : Traefik은 다양한 백엔드 시스템 및 서비스 디스커버리 툴과 통합할 수 있는 많은 플러그인과 미들웨어를 제공한다. 이를 통해 요청 및 응답을 수정하고 보안, 로깅, 인증, 압축 등을 쉽게 구현할 수 있다.
- 동적 Let's Encrypt 지원 : Traefik은 동적으로 SSL/TLS 인증서를 생성 및 관리할 수 있으며, 이를 통해 웹 애플리케이션의 보안을 강화할 수 있다.
- 대시보드 및 모니터링 : Traefik은 웹 대시보드를 제공하여 현재의 프록시 상태와 요청 및 응답 통계를 모니터링할 수 있다.
traefik 참고 사이트
Traefik Docker Documentation - Traefik
Traefik Docker Documentation - Traefik
Traefik & Docker A Story of Labels & Containers Attach labels to your containers and let Traefik do the rest! Traefik works with both Docker (standalone) Engine and Docker Swarm Mode. The Quick Start Uses Docker If you have not already read it, maybe you w
doc.traefik.io
traefik - Official Image | Docker Hub
traefik - Official Image | Docker Hub
traefik •• Traefik, The Cloud Native Edge Router
hub.docker.com
Zarathu Blog - Docker와 Traefik을 활용한 Reverse-Proxy 구현
Zarathu Blog - Docker와 Traefik을 활용한 Reverse-Proxy 구현
숭실대학교 인턴십 프로그램을 통하여 참여한 차라투에서 인턴으로 활동하며 5주차 동안 학습한 내용에 대해 공유합니다. 목표 Docker와 Traefik을 활용하여 Reverse-Proxy를 구현한다. 목차 Traefik이란?
blog.zarathu.com
실습
'docker' 카테고리의 다른 글
Jenkins에 app 배포 [GitHub, Maven 이용] (0) | 2023.10.11 |
---|---|
Jenkins (0) | 2023.10.11 |
Grafana (0) | 2023.10.10 |
Docker save, load (0) | 2023.10.06 |
nodejs 실습 (0) | 2023.10.06 |