О Envoy
Высокопроизводительный прокси на C++, созданный для развертывания облачных микросервисов.
Envoy выступает в качестве универсальной плоскости данных для архитектур service mesh, предоставляя расширенные возможности маршрутизации, балансировки нагрузки и наблюдаемости. Создан в Lyft и теперь является выпускным проектом CNCF, используемым такими компаниями, как Airbnb, Netflix и Uber.
Ключевые возможности
- ⚡ Высокая производительность: Реализация на C++ с минимальным объемом памяти
- 🔀 Агностик протокола: Нативная поддержка HTTP/1.1, HTTP/2, HTTP/3, gRPC и TCP
- 🎯 Интеллектуальная маршрутизация: Маршрутизация на основе путей, разделение трафика и манипуляция заголовками
- 🔄 Паттерны отказоустойчивости: Автоматические повторные попытки, автоматические выключатели и управление таймаутами
- 📊 Богатые метрики: Встроенная статистика, распределенная трассировка и журналирование доступа
- 🔌 Динамическая конфигурация: API xDS для обновлений во время выполнения без перезапуска
- 🛡️ Безопасность прежде всего: Терминация TLS, взаимный TLS, ограничение скорости и аутентификация
- 🌍 Мультипротокольность: Протоколы WebSocket, MongoDB, Redis, Postgres
Обзор конфигурации
Этот стек включает базовую статическую конфигурацию. Для вашего случая использования вам следует:
- Отредактировать
envoy.yamlдля определения правил маршрутизации - Настроить upstream кластеры для ваших backend сервисов
- Настроить listeners для ваших конкретных портов и протоколов
- Добавить фильтры для аутентификации, ограничения скорости или других функций
Настройка по умолчанию предоставляет:
- Панель администратора на порту 9901 для мониторинга и отладки
- Пример HTTP listener на порту 10000
- Пример определения upstream сервиса
Точки доступа
- Консоль администратора:
http://envoy.stack.localhost:9901- Просмотр конфигурации, статистики и состояния - Конечная точка прокси:
http://envoy.stack.localhost:10000- Основная точка входа трафика