Envoy Gateway
Envoy Gateway — это решение для управления входящим и исходящим трафиком в Kubernetes, построенное на базе ресурсов Gateway API и прокси-сервера Envoy.
Задачи Envoy Gateway:
- маршрутизация HTTP-, HTTPS- и TCP-трафика;
- балансировка нагрузки;
- терминирование SSL- и TLS-соединений;
- расширенное управление трафиком — например, поддержка канареечных и blue-green развертываний.
В Managed Kubernetes Envoy Gateway не предустанавливается в кластер, его необходимо установить самостоятельно.
Gateway API
Gateway API — это плагин Kubernetes с набором API-ресурсов для управления сетевым трафиком на уровнях L4 и L7, балансировкой нагрузки, маршрутизацией, политиками безопасности и мультикластерностью.
К ресурсам Gateway API относятся:
- GatewayClass;
- Gateway;
- HTTPRoute;
- GRPCRoute.
Подробнее о ресурсах Gateway API в подразделе Resource model инструкции Gateway API в документации Kubernetes.
Gateway API — это более современная альтернатива Ingress API. Их основные различия можно посмотреть в подразделе Key Differences Between Ingress API и Gateway API инструкции Migrating from Ingress в документации Gateway API.
Установить Envoy Gateway
Без настройки параметров
С настройкой параметров
-
Установите Envoy Gateway:
helm upgrade --install eg --create-namespace oci://docker.io/envoyproxy/gateway-helm --version v1.6.3 -n envoy-gateway-system -
Убедитесь, что Envoy Gateway установлен:
kubectl get podsВ ответе появится информация об Envoy Gateway:
NAME READY STATUS RESTARTS AGE
envoy-gateway-8545855df8-vjqtf 1/1 Running 0 35s
-
Получите значения по умолчанию и сохраните их в файл
envoy-gateway-values.yaml:helm inspect values oci://docker.io/envoyproxy/gateway-helm --version v1.6.3 > envoy-gateway-values.yaml -
В файле
envoy-gateway-values.yamlнастройте необходимые параметры и сохраните изменения. -
Установите Envoy Gateway:
helm upgrade --install eg --create-namespace oci://docker.io/envoyproxy/gateway-helm --version v1.6.3 -n envoy-gateway-system --values envoy-gateway-values.yaml -
Убедитесь, что Envoy Gateway установлен:
kubectl get podsВ ответе появится информация об Envoy Gateway:
NAME READY STATUS RESTARTS AGE
envoy-gateway-8545855df8-vjqtf 1/1 Running 0 35s