Как включить порт в Google Kubernetes Engine для приема подключений через веб-сокеты? Есть ли способ сделать это, кроме использования контроллера входящего трафика?


Согласно эта статья в документации GCP, существует 4 способа предоставления Сервиса внешним приложениям.
Он может быть представлен с помощью ClusterIP, NodePort, (TCP / UDP) Балансировщик нагрузки или внешнего имени.
Веб-сокеты поддерживаются глобальным балансировщиком нагрузки Google, поэтому вы можете использовать k8s Service типа LoadBalancer для предоставления такой службы за пределами вашего кластера.
Имейте в виду, что балансировщики нагрузки, созданные и управляемые таким образом вне Kubernetes, будут иметь продолжительность соединения по умолчанию 30 секунд, что мешает работе веб-сокета и приводит к частому закрытию соединения. Это почти бесполезно для эффективного использования веб-сокетов.
Пока Эта проблема не будет разрешен, вам нужно будет либо изменить этот параметр тайм-аута вручную, либо (рекомендуется) рассмотреть возможность использования контроллера входящего трафика в кластере (например, nginx), который дает вам больше контроля.
Я вчера установил балансировщик нагрузки. Как только у меня появится немного свободного времени, я поиграю с контроллером входящего трафика.