Repolode
jittering

jittering/traefik-kop

원격 호스트의 Docker 컨테이너 라벨을 읽어 Redis에 게시하고, 단일 Traefik 인스턴스가 여러 Docker 노드의 서비스로 트래픽을 라우팅하도록 하는 디스커버리 에이전트입니다.

스타
526
포크
29
열린 이슈
1
마지막 커밋
24일 전

어떤 프로젝트인가요?

traefik-kop는 Swarm이나 Kubernetes 없이 여러 호스트로 구성된 Docker 클러스터를 단일 외부 공개용 Traefik 인스턴스 뒤에서 운영할 수 있게 해 주는 디스커버리 에이전트입니다. 각 워커 노드에서 실행되는 traefik-kop는 Traefik의 Docker provider와 동일한 로직으로 로컬 Docker 데몬에서 컨테이너 라벨을 읽고, 생성된 라우팅 설정을 공유 Redis 인스턴스에 게시합니다. 메인 Traefik 노드는 같은 Redis를 가리키는 Redis provider를 사용하도록 설정하면 모든 노드의 서비스 경로를 가져옵니다.

이 에이전트는 호스트 간 라우팅에 필요한 세부 사항을 처리합니다. 컨테이너 내부 IP를 플래그, 환경 변수, 네트워크 인터페이스 또는 서비스별 라벨로 지정한 접근 가능한 bind IP로 바꾸고, 게시된 호스트 포트를 바탕으로 서비스 포트를 결정합니다. 컨테이너 하위 집합을 대상으로 하는 네임스페이스, 노드 간 로드 밸런서 병합, 주기적으로 갱신되는 Redis TTL 기반 만료, Redis Sentinel, 선택적 상호 인증을 포함한 TLS를 지원합니다. Docker 이벤트를 실시간으로 감시하며, 설정 가능한 폴링 방식으로 대체할 수도 있습니다.

핵심 기능

  • 01각 노드의 Traefik Docker provider 라우팅 설정을 공유 Redis에 게시합니다.
  • 02라벨, 플래그, 네트워크 인터페이스 또는 자동 감지로 bind IP를 선택합니다.
  • 03쉼표로 구분한 여러 네임스페이스를 포함해 네임스페이스로 컨테이너를 필터링합니다.
  • 04여러 노드에서 실행되는 서비스의 로드 밸런서 항목을 병합합니다.
  • 05Redis TTL 만료, Redis Sentinel, 상호 인증을 포함한 TLS를 지원합니다.

활용 사례

  • Swarm이나 Kubernetes 없이 여러 독립형 Docker 호스트를 단일 외부 Traefik 진입점을 통해 서비스합니다.
  • 라벨 접두사를 사용해 Traefik과 traefik-kop 인스턴스를 나란히 별도로 실행합니다.
  • 노드가 사라지면 오래된 항목이 만료되는 Redis 기반 라우팅 테이블을 유지합니다.

빠른 시작

  1. 1

    Traefik 노드가 Redis provider를 사용하도록 설정합니다(traefik.yml).

  2. 2

    다른 각 Docker 노드에서 docker-compose로 traefik-kop를 실행하고 REDIS_ADDR 및 BIND_IP를 설정합니다.

  3. 3

    대상 서비스에 traefik 라벨과 포트 바인딩을 추가합니다.

사용 전 알아둘 점

  • Traefik과 traefik-kop 모두에서 연결할 수 있는 실행 중인 Redis 인스턴스가 필요합니다.
  • Docker에는 unix 소켓으로만 연결합니다. SSH 및 HTTP(S) Docker 연결은 지원되지 않습니다.
  • 로드 밸런서 병합은 기본적으로 꺼져 있으며, 노드 IP가 변경되면 이전 IP가 남을 수 있습니다.

포함된 컬렉션

토픽

자주 묻는 질문

traefik-kop은(는) 무엇인가요?
원격 호스트의 Docker 컨테이너 라벨을 읽어 Redis에 게시하고, 단일 Traefik 인스턴스가 여러 Docker 노드의 서비스로 트래픽을 라우팅하도록 하는 디스커버리 에이전트입니다. traefik-kop는 Swarm이나 Kubernetes 없이 여러 호스트로 구성된 Docker 클러스터를 단일 외부 공개용 Traefik 인스턴스 뒤에서 운영할 수 있게 해 주는 디스커버리 에이전트입니다. 각 워커 노드에서 실행되는 traefik-kop는 Traefik의 Docker provider와 동일한 로직으로 로컬 Docker 데몬에서 컨테이너 라벨을 읽고, 생성된 라우팅 설정을 공유 Redis 인스턴스에 게시합니다. 메인 Traefik 노드는 같은 Redis를 가리키는 Redis provider를 사용하도록 설정하면 모든 노드의 서비스 경로를 가져옵니다.
traefik-kop은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
traefik-kop은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
traefik-kop은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. traefik-kop의 마지막 커밋은 2026년 10월 13일입니다.
traefik-kop은(는) 어디에 사용할 수 있나요?
Swarm이나 Kubernetes 없이 여러 독립형 Docker 호스트를 단일 외부 Traefik 진입점을 통해 서비스합니다. 라벨 접두사를 사용해 Traefik과 traefik-kop 인스턴스를 나란히 별도로 실행합니다. 노드가 사라지면 오래된 항목이 만료되는 Redis 기반 라우팅 테이블을 유지합니다.
traefik-kop는 어떻게 설치하나요?
Traefik 노드가 Redis provider를 사용하도록 설정합니다(traefik.yml). 다른 각 Docker 노드에서 docker-compose로 traefik-kop를 실행하고 REDIS_ADDR 및 BIND_IP를 설정합니다. 대상 서비스에 traefik 라벨과 포트 바인딩을 추가합니다.
traefik-kop은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/jittering/traefik-kop

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트