Входящий шлюз (Gateway) — это экземпляр, развернутый из Gateway Class. Он создает слушатели для перехвата внешнего трафика на указанных доменных именах и портах. Вместе с правилами маршрутизации он может направлять указанный внешний трафик на соответствующие backend-экземпляры.
Создайте входящий шлюз для более точного распределения сетевых ресурсов.
Название ресурса | Обзор | Инструкция по использованию |
---|---|---|
Gateway Class | В стандартной документации Gateway API Gateway Class определяется как шаблон для создания шлюзов. Разные шаблоны могут создавать входящие шлюзы для различных бизнес-сценариев, что облегчает быстрое управление трафиком. | Платформа включает выделенные Gateway Classes. |
Inbound Gateway | Входящий шлюз соответствует конкретным экземплярам ресурсов, и пользователь может эксклюзивно использовать все слушающие и вычислительные ресурсы этого входящего шлюза. Это конфигурация правил маршрутизации, действующая для слушателя. При обнаружении внешнего трафика шлюз распределяет его на backend-экземпляры согласно правилам маршрутизации. | Его можно рассматривать как экземпляр балансировщика нагрузки. |
Route Rule | Правила маршрутизации определяют набор правил для распределения трафика от шлюза к сервисам. В настоящее время стандартно поддерживаемые типы правил маршрутизации в Gateway API включают HTTPRoute, TCPRoute, UDPRoute и др. | Платформа поддерживает прослушивание протоколов HTTP, HTTPS, TCP и UDP. |
Администратор платформы должен убедиться, что кластер поддерживает внутреннюю маршрутизацию типа LoadBalancer. Для публичных облачных кластеров должен быть установлен LoadBalancer Service Controller. В непубличных облачных кластерах платформа предоставляет функцию пула внешних адресов, которая позволяет внутренней маршрутизации типа LoadBalancer автоматически получать IP из пула внешних адресов для внешнего доступа после завершения настройки.
alb2
формируется как {gatewayName}-{random}
.gateway
.Перейдите в Container Platform.
В левой навигационной панели выберите Network > Inbound Gateway.
Нажмите Create Inbound Gateway.
Следуйте инструкциям для настройки конкретных параметров.
Параметр | Описание |
---|---|
Name | Имя входящего шлюза. |
Gateway Class | Gateway Class определяет поведение шлюза, аналогично концепции классов хранения (StorageClasses); это ресурс кластера. Dedicated: входящий шлюз будет соответствовать конкретному экземпляру ресурса, и пользователь сможет использовать все слушатели и вычислительные ресурсы этого шлюза. |
Specification | Можно выбрать рекомендованный сценарий использования в зависимости от потребностей или настроить лимиты ресурсов самостоятельно. |
Access Address | Адрес входящего шлюза, который по умолчанию получается автоматически. |
Internal Routing Annotation | Используется для объявления конфигурации или возможностей внутренней маршрутизации типа LoadBalancer. Для подробной информации об аннотациях смотрите LoadBalancer type internal routing annotation instructions. |
Нажмите Create.
После создания входящего шлюза платформа автоматически создает множество ресурсов. Не удаляйте перечисленные ниже ресурсы.
Ресурсы, создаваемые по умолчанию | Имя |
---|---|
Ресурс типа ALB2 | name-lb-random |
Deployment | name-lb-random |
Внутренняя маршрутизация |
|
Конфигурационный словарь |
|
Service Account | name-lb-random-serviceaccount |
Обновление входящего шлюза приведет к прерыванию сервиса на 3-5 минут. Пожалуйста, выбирайте подходящее время для выполнения этой операции.
Зайдите в Container Platform.
В левой навигационной панели выберите Network > Inbound Gateway.
Нажмите ⋮ > Update.
Обновите конфигурацию входящего шлюза по необходимости.
Примечание: Пожалуйста, разумно задавайте спецификации в соответствии с бизнес-требованиями.
Нажмите Update.
Отслеживает трафик по указанным доменным именам и перенаправляет его на backend-экземпляры согласно привязанным правилам маршрутизации.
Если необходимо отслеживать протокол HTTP, заранее свяжитесь с администратором для подготовки доменного имени.
Если необходимо отслеживать протокол HTTPS, заранее свяжитесь с администратором для подготовки доменного имени и сертификата.
В левой навигационной панели выберите Network > Inbound Gateway.
Нажмите на Имя входящего шлюза.
Нажмите Add Listener.
Следуйте инструкциям для настройки конкретных параметров.
Параметр | Описание |
---|---|
Протокол и порт слушателя | В настоящее время поддерживается мониторинг протоколов HTTP, HTTPS, TCP и UDP, можно ввести порт для мониторинга, например: 80 . Примечание:
|
Доменное имя | Выберите доступное доменное имя в текущем namespace для мониторинга сетевого трафика, обращающегося к этому домену. Подсказка: протоколы TCP и UDP не поддерживают выбор доменных имен. |
Нажмите Create.
Правила маршрутизации задают политики маршрутизации для входящего трафика, аналогично входящим правилам (Kubernetes Ingress). Они обеспечивают доступ к сетевому трафику, отслеживаемому шлюзом, для внутренней маршрутизации кластера (Kubernetes Service), облегчая стратегию маршрутизации и переадресации. Главное отличие в том, что они нацелены на разные объекты сервиса: входящие правила обслуживают Ingress Controller, а правила маршрутизации — Ingress Gateway.
После настройки прослушивания в ingress gateway шлюз будет в реальном времени отслеживать трафик с указанных доменов и портов. Правила маршрутизации могут направлять входящий трафик на backend-экземпляры по желанию.
HTTPRoute
, TCPRoute
, UDPRoute
.Gateway
.Если для объекта Path в правиле маршрутизации типа HTTPRoute нет совпадающего правила, автоматически добавляется правило с режимом PathPrefix и значением /.
Зайдите в Container Platform.
В левой навигационной панели выберите Network > Route Rules.
Нажмите Create Route Rule.
Следуйте инструкциям для настройки параметров.
Параметр | Описание |
---|---|
Тип маршрута | В настоящее время поддерживаются типы маршрутов: HTTPRoute, TCPRoute, UDPRoute. Подсказка: HTTPRoute поддерживает публикацию на слушатели протоколов HTTP и HTTPS. |
Публикация на слушатель | В левой панели выберите созданный Ingress Gateway, в правой — созданный Listener. Платформа опубликует созданные правила маршрутизации на выбранный слушатель, позволяя шлюзу перенаправлять перехваченный трафик на указанные backend-экземпляры. Примечание: Нельзя публиковать правила маршрутизации на слушатель, который работает на порту 11782 или уже содержит TCP или UDP маршруты. |
Совпадение (Match) | Можно добавить одно или несколько правил совпадения для перехвата трафика, соответствующего требованиям. Например, перехват трафика с указанным Path, перехват трафика с указанным методом и т.д. Примечание:
|
Действие (Action) | Можно добавить одно или несколько действий для обработки перехваченного трафика.
Примечание:
|
Backend Instance | После активации правила трафик будет перенаправлен на backend-экземпляры согласно выбранным внутренним маршрутам и портам в текущем namespace. Можно также настроить веса, при этом экземпляры с большим весом будут выбираться с большей вероятностью. Подсказка: Процент рядом с весом показывает вероятность перенаправления на этот экземпляр, рассчитываемую как отношение текущего значения веса к сумме всех весов. |
Нажмите Create.