Traefik 확장하기
본문
Traefik 확장하기
플러그인은 Traefik을 맞춤 기능과 동작으로 확장할 수 있게 해 주는 강력한 기능이에요. Plugin Catalog는 기존 플러그인의 전체 목록을 제공하는 소프트웨어 서비스(SaaS) 플랫폼입니다.
Plugin Catalog 접근하기
Plugin Catalog는 Traefik 대시보드의 Plugins 메뉴 항목으로 들어갈 수 있어요.
Traefik 인스턴스에 새 플러그인 추가하기
Traefik 인스턴스에 새 플러그인을 추가하려면 그 인스턴스의 설치(정적) 구성을 바꿔야 해요. 각 플러그인의 Install 섹션에 설치(정적) 구성 예시가 있어요. 많은 플러그인이 Traefik 라우팅(동적) 구성에 자체 섹션을 갖고 있습니다.
실험적 기능
플러그인은 예상치 못한 방식으로 Traefik의 동작을 바꿀 수 있어요. 프로덕션 Traefik 인스턴스에 새 플러그인을 추가할 때는 주의하세요.
Traefik 인스턴스에 새 플러그인을 추가하는 방법을 더 배우려면 개발자 문서를 참고하세요.
플러그인 시스템
Traefik은 서로 다른 사용 사례와 개발자 선호도를 위해 설계된 두 가지 플러그인 시스템을 지원해요.
Yaegi 플러그인 시스템
Traefik Yaegi 플러그인은 Go 언어로 개발돼요. 본질적으로 Go 패키지죠. 사전 컴파일된 플러그인과 달리, Yaegi 플러그인은 Traefik에 내장된 Go 인터프리터인 Yaegi가 즉석에서 실행합니다.
이 방식은 컴파일과 복잡한 툴체인이 필요 없어서, 플러그인 개발이 브라우저 확장 프로그램을 만드는 것처럼 간단해져요. Yaegi 플러그인은 미들웨어와 프로바이더 기능을 모두 지원합니다.
주요 특징
-
Go 언어로 작성
-
컴파일 불필요
-
내장 인터프리터로 실행
-
완전한 Go 기능 세트 지원
-
개발 중 핫-리로드 가능
WebAssembly(WASM) 플러그인 시스템
Traefik WASM 플러그인은 WebAssembly(WASM)로 컴파일되는 어떤 언어로든 개발할 수 있어요. 이 방식은 http-wasm을 기반으로 합니다.
WASM 플러그인은 이식 가능한 바이너리 모듈로 컴파일돼서, 보안 격리를 유지하면서 거의 네이티브에 가까운 성능으로 실행됩니다.
주요 특징
-
다중 언어 지원 (Go, Rust, C++ 등)
-
WebAssembly 바이너리로 컴파일
-
네이티브에 가까운 성능
-
강력한 보안 격리
-
현재는 미들웨어만 지원
나만의 플러그인 만들기
Traefik 사용자는 자신만의 플러그인을 만들어 Plugin Catalog로 커뮤니티와 공유할 수 있어요. Traefik 플러그인 제작에 대해 더 배우려면 개발자 문서를 참고하세요.