개요
- 사이트
- 오픈 소스 엣지 라우터
- 주요 목표
- 차별화
- 서비스에 적합한 구성을 자동으로 검색
- 인프라를 검사하여 관련 정보를 찾고 어떤 서비스가 어떤 요청을 제공하는지 발견
- 별도의 구성 파일을 유지하고 동기화할 필요가 없음
- 실시간으로 자동으로 발생
- 작업 상태를 구성하고 유지 관리하는 대신 시스템에 새로운 기능을 개발하고 배포하는 데 시간을 할애
아키텍처
- 기반
- EntryPoints
- 네트워크 진입점
- 패킷을 수신할 포트와 TCP 또는 UDP를 수신할지 여부를 정의
- 라우터
- 들어오는 요청을 처리할 수 있는 서비스에 연결하는 역할
- 미들웨어
- 라우터에 연결된 미들웨어는 요청이나 응답이 서비스로 전송되기 전에 수정 가능
- 서비스
- 들어오는 요청을 최종적으로 처리할 실제 서비스에 도달하는 방법을 구성하는 역할
- 기능
- 동적 구성
- 자동 서비스 검색
- 서비스에서 해당 경로를 가져오므로 IP 주소나 기타 규칙으로 복잡하게 얽힌 구성 파일을 만들고 동기화할 필요가 없음
- 서비스가 배포되면 Traefik은 이를 즉시 감지하고 라우팅 규칙을 실시간으로 업데이트
- 다중 백엔드 및 프로토콜 지원
설치
- Docker
- Kubernetes
- 포트 확인
kubectl get service -A | grep "traefik-dashboard-service\|traefik-web-service"
- dashboard
테스트
- 인그레스 생성
서비스명 : func-01, 포트 : 8080인 http 서비스가 있다고 가정
-
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: func-01
namespace: default
spec:
rules:
- http:
paths:
- path: /func-01
pathType: Prefix
backend:
service:
name: func-01
port:
number: 8080
curl 127.0.0.1:${traefik-web-service port}/func-01 실행
- Logs, Access Logs, Metrics, Tracing 지원