Рекомендации по настройке grpc-web - ›прокси-сервер envoy -› серверная служба в gcp

Я прочитал несколько руководств / примеров, пытаясь найти простой способ запустить серверную часть grpc с прокси-сервером envoy для маршрутизации трафика для Интернета. Я успешно запустил эту архитектуру локально для связи e2e.

Я нашел официальный документ https://cloud.google.com/architecture/exposing-grpc-services-on-gke-using-envoy-proxy. Но я не думаю, что мне сейчас нужен балансировщик нагрузки.

Моя цель:

  • Бэкэнд-сервер Grpc работает для поддержки приложений iOS / Android
  • Прокси-сервер Envoy работает для поддержки Интернета

Есть ли какой-либо учебник по развертыванию внутреннего сервера и прокси-сервера envoy для веб-маршрутизации grpc?


person forest    schedule 25.04.2021    source источник


Ответы (1)


1. Инфраструктура gRPC позволяет мобильному приложению напрямую вызывать методы в серверной службе, как если бы это был локальный объект. Вы можете использовать gRPC, чтобы сделать ваше мобильное приложение более эффективным с точки зрения пропускной способности и уменьшить задержку между вашим приложением и серверной службой, работающей на Google Cloud Platform.

Чтобы настроить серверную часть grpc с прокси-сервером-посланником, мы должны использовать балансировку сетевой нагрузки, балансировка сетевой нагрузки принимает входящие запросы из Интернета (например, от мобильных клиентов или потребителей услуг за пределами вашей компании). Балансировка сетевой нагрузки выполняет следующие задачи. Балансировщик нагрузки выполняет входящие подключения к рабочим узлам в пуле. Трафик направляется в службу Kubernetes Envoy, которая предоставляется на всех рабочих узлах в кластере. Сетевой прокси Kubernetes перенаправляет эти подключения модулям, на которых запущен Envoy. Выполняет HTTP-проверки работоспособности рабочих узлов в кластере. Envoy выполняет следующие задачи: Завершает соединения SSL / TLS. Обнаруживает модули, на которых работают службы gRPC, запрашивая внутреннюю службу DNS кластера. Маршрутизирует и распределяет трафик к сервисным модулям gRPC. Выполняет проверки работоспособности служб gRPC в соответствии с протоколом проверки работоспособности gRPC. Предоставляет конечную точку для проверки работоспособности с помощью балансировки сетевой нагрузки.

Сервисы gRPC (echo-grpc и reverse-grpc) представлены как безголовые сервисы Kubernetes. Это означает, что IP-адрес кластера не назначается, а сетевой прокси Kubernetes не распределяет нагрузку на поды. Вместо этого в службе DNS кластера создается запись DNS A, содержащая IP-адреса модуля. Envoy обнаруживает IP-адреса модуля из этой записи DNS и распределяет нагрузку между ними в соответствии с политикой, настроенной в Envoy.

Чтобы разместить посланника:

Создайте Kubernetes ConfigMap для хранения файла конфигурации Envoy (envoy.yaml) kubectl apply -f k8s / envoy-configmap.yaml

Создайте развертывание Kubernetes для Envoy: kubectl apply -f k8s / envoy-deployment.yaml

Убедитесь, что запущены два модуля посланников: kubectl get Deployment envoy

Для дальнейшего чтения перейдите по ссылке ниже: https://cloud.google.com/architecture/exposing-grpc-services-on-gke-using-envoy-proxy

Для получения дополнительной информации о настройке внутреннего сервера Grpc для мобильного приложения перейдите по ссылке ниже: https://cloud.google.com/architecture/mobile-compute-engine-grpc

person Siva Mannani    schedule 21.05.2021