Lynq - DB駆動のKubernetes自動化オペレーター
(lynq.sh)こんにちは。
Database-Driven Kubernetes Operatorを開発したので、もしかすると関心を持ってくださる方々にご紹介したいと思います。
Lynqは、アプリケーションがすでにDBで管理しているデータをそのまま活用し、Kubernetesリソースを自動で作成・更新・整理するオペレーターです。
(Lynqは「リンク」と読めますが、Linkに由来しているため「リンク」と発音しています。)
開発のきっかけは比較的シンプルです。
環境・テナント・ノードのような情報がすべてDBにある状況で、
情報が少しでも変わるたびに毎回反映し直すのに時間がかかりすぎて、手間でもありました。
そこで、こんな考えに至りました:
「Gitで管理すべきなのは、実際には繰り返し使うテンプレート1つで十分で、
残りはプロビジョニング用データが変わるたびに自動で追従すればよいのではないか?」
さまざまに調査しましたが、満足できるツールは見つかりませんでした。
すでに5〜6年以上HelmとTerraformを使っていましたが、次のような限界がありました:
- DBの変化に即座に反応できない
- 継続的なreconcileモデルがない
- 結局、複数のスクリプトやパイプラインを自前で維持しなければならない
そこで、この要件をそのまま満たすオペレーターとしてLynqを作りました。
またLynqは、プロダクションで誤解なく運用できるよう、可視化とドキュメント整備にも多くの力を注いでいます。
たとえば、作成・削除・競合などの理解を助ける可視化を、以下のページで一目で確認できます(Interactive):
=> Policies Docs
=> Dependency Visualizer
こうしたケースで特に役立つと思います
- SaaS環境で顧客・テナント構成を自動生成する
- ステージング/プレビュー環境を大量に作成し、ライフサイクル管理する必要があるシステム
- GitOpsなしでもリソースを高速に同期する必要があるアーキテクチャ
- DBベースで大規模な設定を運用しているチーム
- 複数拠点・ノード・サイト設定をテンプレートで統合管理する必要がある構成
もし「この方式ならこういう場所でも使えそうだ」というアイデアや、
実際に経験した課題のある状況があれば、気軽にフィードバックをいただけるととても助かります。
ありがとうございます。
Quick Startドキュメントに従えば、ローカル環境でも簡単に動かせますし、Helmでもインストール可能です。
さらに、監視用のPrometheus RuleやGrafana Dashboard JSONも提供されています。
- GitHub Repo: https://github.com/k8s-lynq/lynq
- Docs: https://lynq.sh/
2件のコメント
わあ、ドキュメントをものすごく詳しく、しかもきれいに作られましたね
ありがとうございます(笑)
似たようなツールがほとんどなく、まだ馴染みも薄いため、まずは視覚的に理解しやすくすることを重視しています。
もしドキュメントをご覧になっても分かりにくい点や、概念的に混乱しやすい部分があれば、どこを改善するとよいかフィードバックをいただけると嬉しいです!
今はライブデモと E2E テストの作成で完成度を高めているところなので、引き続き見守っていただけるとありがたいです。