Какой входной контроллер следует использовать для поддержки WebSocket в кластере AWS k8s, развернутом Kops?

У меня кластер на AWS установлен через Kops. Теперь мне нужно представить сервис WebSocket (с включенной безопасностью wss://) для внешнего мира. Существуют различные входные контроллеры, nginx, traefik, ELB, ALB. Какой из них предлагается и:

  • простота развертывания и настройки
  • поддержка http: //, https: //, ws: // и wss: //

1 ответ

Решение

На мой взгляд, этот вопрос основан на мнении и слишком широк. Пожалуйста, постарайтесь избегать таких вопросов, потому что нет единственного решения, которое является лучшим.

Мне удалось найти много ресурсов о nginx и websockets. У меня нет производственного опыта по настройке этого, но я думаю, что вы могли бы найти это полезным.

NGINX является популярным выбором для Ingress Controller для множества функций:

  • Websocket, который позволяет вам балансировать нагрузку на приложения Websocket.

  • Службы SSL, которые позволяют балансировать нагрузку на приложения HTTPS.

  • Перезаписывает, что позволяет переписать URI запроса перед отправкой его в приложение.

  • Постоянство сеанса (только NGINX Plus), которое гарантирует, что все запросы от одного и того же клиента всегда передаются в один и тот же внутренний контейнер.

  • Поддержка JWT (только NGINX Plus), которая позволяет NGINX Plus проверять подлинность запросов путем проверки веб-токенов JSON (JWT).

Самая важная часть с nginx - это аннотация, которая указывает, какие сервисы являются сервисами Websocket. Еще немного информации об использовании и настройке. Также полезно руководство по настройке входа nginx, хотя оно и о GKE, но может быть полезным.

Другие вопросы по тегам