Repolode
krakend

krakend/krakend-ce

Высокопроизводительный декларативный API Gateway без состояния на Go для маршрутизации, агрегации и защиты запросов к бэкенд-микросервисам.

Open source альтернатива:Kong GatewayApigee

Звёзды
2,695
Форки
502
Открытые issues
38
Последний коммит
14 часов назад

Что это?

KrakenD — это API Gateway перед вашими сервисами: клиент обращается к одной конечной точке, а шлюз распределяет запросы между несколькими бэкендами. Конфигурация задаётся декларативно, обычно в JSON-файле. Такой подход хорошо вписывается в GitOps-процессы и позволяет создавать новые API, не меняя существующие контракты сервисов.

Шлюз поддерживает агрегацию и фильтрацию контента, преобразование форматов XML и JSON, а также параллельные запросы к бэкендам. В числе средств защиты — поддержка JWT и OAuth, CORS и набор заголовков HTTP security. Также доступны ограничение частоты запросов, троттлинг, circuit breaking и балансировка нагрузки между шлюзом и сервисами.

KrakenD не хранит состояние: каждый узел работает независимо, без координации с другими узлами и центрального хранилища, поэтому систему можно горизонтально масштабировать. Для сбора телеметрии предусмотрены интеграции с Prometheus, Grafana, Datadog, Zipkin и Jaeger, а пользовательское поведение можно добавлять с помощью скриптов Lua или выражений Google CEL. Community Edition — это версия с открытым исходным кодом под лицензией Apache 2.0; она доступна в виде Docker-образа и готовых бинарных файлов.

Ключевые возможности

  • 01Декларативная конфигурация в JSON, подходящая для GitOps-процессов.
  • 02Агрегация и фильтрация ответов нескольких бэкенд-сервисов с выдачей через одну конечную точку.
  • 03Преобразование данных между форматами XML и JSON.
  • 04Встроенная поддержка JWT и OAuth, CORS и заголовков HTTP security.
  • 05Ограничение частоты запросов, троттлинг, circuit breaker и балансировка нагрузки.
  • 06Экспорт телеметрии в Prometheus, Grafana, Datadog, Zipkin и Jaeger.
  • 07Добавление пользовательской логики с помощью скриптов Lua или выражений Google CEL.

Сценарии использования

  • Размещение единого публичного API перед несколькими микросервисами.
  • Создание конечных точек Backend For Frontend для веб- или мобильных клиентов.
  • Отвязка клиентов от бэкенд-сервисов, чтобы API могли меняться независимо.
  • Запуск шлюза без состояния в Kubernetes или в локальной инфраструктуре.

Быстрый старт

  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?
Высокопроизводительный декларативный API Gateway без состояния на Go для маршрутизации, агрегации и защиты запросов к бэкенд-микросервисам. KrakenD — это API Gateway перед вашими сервисами: клиент обращается к одной конечной точке, а шлюз распределяет запросы между несколькими бэкендами. Конфигурация задаётся декларативно, обычно в JSON-файле. Такой подход хорошо вписывается в GitOps-процессы и позволяет создавать новые API, не меняя существующие контракты сервисов.
krakend-ce можно использовать бесплатно? Какая у него лицензия?
krakend-ce распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
krakend-ce всё ещё поддерживается?
Активно поддерживается. Последний коммит в krakend-ce — 21 окт. 2026 г..
Для чего можно использовать krakend-ce?
Размещение единого публичного API перед несколькими микросервисами. Создание конечных точек Backend For Frontend для веб- или мобильных клиентов. Отвязка клиентов от бэкенд-сервисов, чтобы API могли меняться независимо. Запуск шлюза без состояния в Kubernetes или в локальной инфраструктуре.
Как установить 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты