출처: https://doc.traefik.io/traefik/

 

지난 시간 k3s로 클러스터를 구축했습니다. k3s를 설치할 때 몇가지 리소스들이 함께 설치되는데요. 그 중에 Ingress Controller로써 사용되는 Traefik이 있습니다. 오늘은 이 녀석에 대해 알아보겠습니다.

traefik 관련 리소스들


Ingress Controller란?

Ingress ControllerIngress라는 리소스에 맞춰 로드밸런서를 요청대로 설정하는 역할을 수행합니다. 이때 로드밸런서는 쿠버네티스 Pod 형태로 제공되는 로드밸런서나 클라우드에서 제공하는 로드밸런서(AWS ALB Controller의 경우)로 구성할 수 있습니다. 각기 다른 로드밸런서에는 다른 Ingress Controller가 필요합니다.

Ingress의 가장 기본적인 역할은 L7 Layer에서 트래픽을 관리하는 것입니다. Ingress를 사용하면 특정 서비스를 외부로 노출 시키기 위해 매번 로드밸런서를 생성할 필요가 없습니다.  부하 분산SSL/TLS termination, host-based 라우팅, content-based 라우팅 등 여러가지 규칙들을 적용할 수 있습니다.

 

Traefik이란?

 

1. 자동 구성

서비스 자동 탐지: Traefik은 클러스터 환경(예: Kubernetes, Docker Swarm 등)에서 서비스 구성을 자동으로 감지하여 실시간으로 설정합니다.

 

Provider 통합: 여러 프로바이더(AWS, Docker, Kubernetes 등)와 통합되어 다양한 인프라 환경에서 사용할 수 있습니다.

 

2. 유연한 라우팅

L7 레벨 라우팅: HTTP/HTTPS 요청을 기반으로 하는 고급 라우팅 기능을 제공합니다. 요청의 URL 경로나 헤더, 메서드에 따라 라우팅을 설정할 수 있습니다.

SSL/TLS 지원: 자동으로 SSL 인증서를 생성하고 관리하여 HTTPS 통신을 지원합니다.

 

3. API 대시보드

모니터링 및 관리: Traefik은 대시보드를 제공하여 현재 라우팅 상태 및 트래픽을 시각적으로 확인하고 관리할 수 있습니다.

 

4. 오픈소스

 

5. 등등(미들웨어, 로깅, 사용 프로토콜 -> 다음에..)

 

주요 특징

https://news.hada.io/topic?id=14672

 

Traefik, 컨테이너를 사용하지 않더라도 주목할 만한 리버스 프록시 및 로드 밸런서 솔 | GeekNews

컨테이너를 사용하지 않더라도 Traefik을 살펴봐야 하는 이유Traefik이 알려진 점Traefik은 마이크로서비스 세계를 돕는 것이 목표임많은 유튜버들이 Docker나 Kubernetes와 같은 컨테이너 인프라를 소유

news.hada.io

 

 

 

Traefik의 대쉬보드

1. Dashboard 설정하기

 k3s로 설치했을 때 Traefik의 대시보드는 기본적으로 볼 수 없습니다. 이에 따라서 Helm 차트 Configuration을 설정해주어야 합니다.

 

 

apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  valuesContent: |-
    additionalArguments:
      - "--api" # Traefik API 활성화
      - "--api.dashboard=true" # 대쉬보드 볼 수 있게 설정
      - "--api.insecure=true" # 개발 용이기에 insecure통신 가능하게
      - "--log.level=DEBUG"  # 로그 레벨을 DEBUG로 설정
    ports:
      traefik:
        expose: true #taefik 포트를 외부에 노출, 기본은 9000포트
    providers:
      kubernetesCRD:
        allowCrossNamespace: true #다른 네임스페이스의 Ingress 리소스 허용

 

 

2. Dashboard 접속

http://{Host}:9000/dashboard/

 

 

 

 

직접 사용해봤을 때 장점

- 설정이 간편하다.

- 문서화가 잘 되어있다.

- 자동 서비스 탐색

Ingress는 하나인데 서비스들 탐색됨
서비스 하나만 연결

직접 사용해봤을 때 단점

- 대쉬보드가 있어서 그런 지..? 로깅이 빈약하게 느껴진다.

 

 

참고자료

- https://docs.k3s.io/kr/helm#helmchartconfig로-패키지-컴포넌트-커스터마이징하기

- https://qdnqn.com/k3s-traefik-dashboard/

- https://k3s.rocks/traefik-dashboard/

 

 

 

훈