Traefik Ingress Controller 테스트

Jerry(이정훈)
3 min readJan 18, 2021

--

Kubernetes Ingress Controller 용도로 NGINX, HAPROXY 등이 가능한데 그 중 Traefik을 검증해 보았다. NGINX가 점유율은 가장 높고 현재 사용 중이기는 한데 POD 재시작하면 사소한 문제가 있었고 F5 인수 후 Community 버전은 제대로 지원이 안되는 것 같은 느낌적인 느낌이 있어 불만이었다. 그래서 Admin UI가 잘되어 있고 이미 사례도 풍부한 Traefik을 검증 해 보았다.

설치는 역시 Helm 이용하여 쉽게 가능하다. (과정 생략)

처음에 어려웠던 게 Ingress 를 사용하지 않고 (물론 사용해도 되지만) IngressRoute라는 CRD를 사용하는 것이었다.

Host에 적용 대상 URL, PathPrefix에 기존 ingress와 동일한 path만 적어주면 된다. 이름도 비슷하듯이 IngresRoute가 Ingress 와 거의 동일한 형식이라 바로 사용 가능하였다.

그리고 Admin Page를 default helm 설정에서 보안상의 이유로 막았다고 하는데, true로 변경하였다.

ingressRoute:dashboard:enabled: true# Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class)annotations: {}# Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels)labels: {}

Admin Page 접속하면 아래와 같이 dashboard 확인 가능하다. (왜 /dashboard/# 까지 다 붙혀야 접속이 되는지는 이해가 안된다.)

http://172.17.29.111:9000/dashboard/#/

(Entrypoints는 Traefik POD Entrypoints 내용)

현재 설정된 내역을 UI로 바로 확인이 가능한게 확실히 NGINX 보다 나은 것 같다.

HTTP 내역을 확인하면 아래와 같이 TLS도 쉽게 적용 가능하고 my.example.com, your.example.com 등으로 URL에 따라 분기하는 L7 기능도 잘되었다.

추가로 Custom 인증서 적용 작업을 하면 Production 환경 사용에 크게 무리가 없을 것 같다. 그리고 L4 스위치 처럼 현재 Session 현황 등을 확인 가능한 페이지가 있으면 하는데, 아쉽게도 그 페이지는 없었다. (grafana NGINX session 모니터링으로 대체)

이렇게 대부분의 기능들이 금방 구현되는 걸 보면 참 신기하다. 새삼 Kubernetes는 실제 운영 환경으로 사용 안 할 이유가 없는 이미 성숙 단계인 것을 느끼게 된다.

--

--

Jerry(이정훈)
Jerry(이정훈)

Written by Jerry(이정훈)

DevOps/Automation Engineer 60살까지 콘솔 잡는 엔지니어를 목표로 느리게 생각하고 있습니다.

No responses yet