Repolode
krakend

krakend/krakend-ce

Go製の高性能でステートレスな宣言型API Gateway。バックエンドのマイクロサービスへの呼び出しをルーティング、集約、保護します。

代替できる製品:Kong GatewayApigee

スター
2,695
フォーク
502
未解決の Issue
38
最終コミット
13 時間前

これは何?

KrakenDはサービスの前段に配置するAPI Gatewayです。クライアントは単一のエンドポイントを呼び出すだけで、Gatewayが複数のバックエンドにリクエストを振り分けます。設定は通常JSONファイルで記述する宣言型で、GitOpsのワークフローに適しており、既存サービスの契約を変更せずに新しいAPIを作成できます。

コンテンツの集約とフィルタリング、XMLとJSON間の形式変換、バックエンドへの並行呼び出しに対応しています。また、JWTとOAuth、CORS、各種HTTPセキュリティヘッダーなどのセキュリティ機能に加え、Gatewayとサービス間のレート制限、スロットリング、サーキットブレーカー、ロードバランシングも備えています。

ステートレス設計のため、各ノードは連携や中央ストアを必要とせず独立して動作し、水平スケールできます。Prometheus、Grafana、Datadog、Zipkin、Jaegerとのテレメトリー連携に対応し、LuaスクリプトやGoogle CEL式で独自の動作を追加できます。このCommunity EditionはApache 2.0ライセンスのオープンソースディストリビューションで、Dockerイメージとビルド済みバイナリが提供されています。

主な機能

  • 01GitOpsのワークフローに適した宣言型JSON設定。
  • 02複数のバックエンドサービスからのレスポンスを集約・フィルタリングし、単一のエンドポイントとして提供。
  • 03XMLとJSONの形式を相互変換。
  • 04JWTとOAuth、CORS、HTTPセキュリティヘッダーを標準サポート。
  • 05レート制限、スロットリング、サーキットブレーカー、ロードバランシング。
  • 06Prometheus、Grafana、Datadog、Zipkin、Jaegerへテレメトリーを出力。
  • 07LuaスクリプトまたはGoogle CEL式による独自ロジックの追加。

ユースケース

  • 複数のマイクロサービスの前段に単一の公開APIを配置する。
  • Webクライアントやモバイルクライアントに合わせたBackend For Frontendエンドポイントを構築する。
  • クライアントとバックエンドサービスを分離し、APIをそれぞれ独立して変更できるようにする。
  • Kubernetesまたはオンプレミス環境でステートレスなGatewayを運用する。

クイックスタート

  1. 1

    公式のKrakenD Dockerイメージを実行する

    docker run -it -p "8080:8080" krakend
  2. 2

    localhost:8080/__health のゲートウェイヘルスエンドポイントを確認する

  3. 3

    makeでソースからバイナリをビルドする(Goが必要)

    make build

使う前に知っておきたいこと

  • Community Editionではプラグインのサポートが廃止されています。GoプラグインにはEnterpriseまたはカスタムビルドが必要です。
  • セキュリティ修正は3.x系列のみでリリースされ、2.13向けにはリリースされません。

トピック

よくある質問

krakend-ce とは?
Go製の高性能でステートレスな宣言型API Gateway。バックエンドのマイクロサービスへの呼び出しをルーティング、集約、保護します。 KrakenDはサービスの前段に配置するAPI Gatewayです。クライアントは単一のエンドポイントを呼び出すだけで、Gatewayが複数のバックエンドにリクエストを振り分けます。設定は通常JSONファイルで記述する宣言型で、GitOpsのワークフローに適しており、既存サービスの契約を変更せずに新しいAPIを作成できます。
krakend-ce は無料で使えますか?ライセンスは?
krakend-ce は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
krakend-ce は今もメンテナンスされていますか?
活発にメンテナンス中。krakend-ce の最終コミットは 2026年10月21日 です。
krakend-ce は何に使えますか?
複数のマイクロサービスの前段に単一の公開APIを配置する。 Webクライアントやモバイルクライアントに合わせたBackend For Frontendエンドポイントを構築する。 クライアントとバックエンドサービスを分離し、APIをそれぞれ独立して変更できるようにする。 Kubernetesまたはオンプレミス環境でステートレスなGatewayを運用する。
krakend-ce のインストール方法は?
公式のKrakenD Dockerイメージを実行する: docker run -it -p "8080:8080" krakend localhost:8080/__health のゲートウェイヘルスエンドポイントを確認する makeでソースからバイナリをビルドする(Goが必要): make build
krakend-ce はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/krakend/krakend-ce

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

関連プロジェクト