Repolode
jittering

jittering/traefik-kop

リモートホスト上のDockerコンテナのラベルを読み取り、Redisに公開することで、単一のTraefikインスタンスから複数のDockerノード上のサービスへルーティングできるディスカバリーエージェント。

スター
526
フォーク
29
未解決の Issue
1
最終コミット
25 日前

これは何?

traefik-kopは、SwarmやKubernetesを使わずにマルチホストのDockerクラスターを構成し、1つの外部公開用Traefikインスタンスの背後で運用するためのディスカバリーエージェントです。各ワーカーノードでtraefik-kopを実行すると、TraefikのDocker providerと同じロジックでローカルのDockerデーモンからコンテナラベルを読み取り、生成したルーティング設定を共有Redisインスタンスに公開します。メインのTraefikノードで同じRedisを参照するRedis providerを設定すれば、すべてのノード上のサービスのルートを取得できます。

このエージェントは、ホスト間ルーティングに必要な処理も担います。フラグ、環境変数、ネットワークインターフェース、またはサービスごとのラベルで設定した到達可能なバインドIPに、コンテナ内部のIPを置き換えます。また、公開されたホストポートからサービスのポートを割り出します。コンテナの対象を絞る名前空間、複数ノード間でのロードバランサー設定のマージ、定期的な更新を伴うRedis TTLベースの有効期限管理、Redis Sentinel、オプションの相互認証を含むTLSに対応しています。Dockerイベントをリアルタイムで監視し、設定可能なポーリング方式へのフォールバックも備えています。

主な機能

  • 01各ノードのTraefik Docker providerのルーティング設定を共有Redisに公開します。
  • 02ラベル、フラグ、ネットワークインターフェース、自動検出によってバインドIPを選択します。
  • 03コンマ区切りで複数指定できる名前空間を使ってコンテナを絞り込みます。
  • 04複数ノードで稼働するサービスのロードバランサー設定をマージします。
  • 05Redis TTLによる有効期限管理、Redis Sentinel、相互認証を含むTLSに対応しています。

ユースケース

  • SwarmやKubernetesを使わずに、複数の独立したDockerホストを1つの公開用Traefikエントリーポイント経由で配信する。
  • ラベルプレフィックスを使い、Traefikとtraefik-kopのインスタンスを分けて並行稼働させる。
  • ノードが停止したときに古いエントリーが期限切れになる、Redisベースのルーティングテーブルを維持する。

クイックスタート

  1. 1

    TraefikノードでRedisプロバイダーを使用するように設定します(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クラスターを構成し、1つの外部公開用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ホストを1つの公開用Traefikエントリーポイント経由で配信する。 ラベルプレフィックスを使い、Traefikとtraefik-kopのインスタンスを分けて並行稼働させる。 ノードが停止したときに古いエントリーが期限切れになる、Redisベースのルーティングテーブルを維持する。
traefik-kop のインストール方法は?
TraefikノードでRedisプロバイダーを使用するように設定します(traefik.yml) 他の各Dockerノードでdocker-composeを使ってtraefik-kopを実行し、REDIS_ADDRとBIND_IPを設定します 対象サービスにtraefikラベルとポートバインディングを追加します
traefik-kop はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/jittering/traefik-kop

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト