Finsys/hawser

The agent for Dockhand

解決する問題

Docker ホストが NAT の背後にある、動的 IP を持つ、または中央管理ツールから直接到達できない場合、リモートでの管理は難しい場合があります。Hawser は各 Docker ホスト上で小さなエージェントとして動作し、ネットワーク構成に関係なく Dockhand(中央管理プラットフォーム)がそのホストと安全に通信できるようにすることで、この問題を解決します。

仕組み

Hawser は Docker ホスト上で実行される軽量な Go プログラムです。ローカルの Docker API への完全なアクセスを提供し、Docker Compose 操作も処理できます。2 つのモードで動作します:

  • 標準モード:エージェントは Dockhand からの着信接続を待ち受けます。これは LAN または静的 IP を持つホストに最適です。
  • エッジモード:エージェントは Dockhand への送信 WebSocket 接続を開始します。これは VPS、NAT ネットワーク、または動的 IP を持つホストに適しています。ホストがインターネットから到達可能である必要がないためです。

どちらのモードでも、Hawser は認証にトークンが必要です(localhost にバインドする場合を除く)。また、接続を保護するためのオプションの TLS 暗号化もサポートしています。Hawser はホストメトリクス(CPU、メモリ、ディスク、ネットワーク)を収集し、エッジモードでは 30 秒ごとに Dockhand に送信します。指数バックオフとランダムジッターを備えた自動再接続が含まれており、再起動後に複数のエージェントがサーバーに過負荷をかけないようにします。

対象ユーザー

Dockhand を使用して複数の Docker ホスト(ホームラボ、クラウド VPS、NAS、エッジデバイスなど)を管理する管理者と開発者で、特にホストが NAT の背後にある場合や IP が変わる場合に、リモートから信頼性が高く安全にアクセスする必要がある方。

ハイライト

  • さまざまなネットワーク設定をカバーする 2 つのモード:標準(待ち受け)とエッジ(送信 WebSocket)。
  • 完全な Docker API プロキシ:コンテナ、イメージ、ボリューム、ネットワーク、ログ、対話型 exec セッションを管理。
  • up、down、pull、ps、logs などのスタック操作のための Docker Compose サポート。
  • ホストメトリクス収集(CPU、メモリ、ディスク、ネットワーク)を Dockhand に報告。
  • 指数バックオフとジッターによる自動再接続で堅牢な接続を実現。
  • セキュリティのためのトークン認証とオプションの TLS。
  • Docker 接続を検証するための組み込みヘルスチェックエンドポイント。
  • systemd サービスまたは Docker コンテナとしてデプロイ可能で、マルチアーキテクチャ(amd64 および arm64)をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト