Маршрутизация исходящего трафика через шлюз с помощью Kubernetes Gateway API
В этом разделе описывается, как использовать Kubernetes Gateway API для маршрутизации исходящего HTTP-трафика через egress gateway.
Предварительные требования
- Установлен Alauda Service Mesh v2 Operator.
- Развернут control plane Istio.
- Подтверждена совместимость ядра Linux.
Процедура
-
Создайте namespace с именем
egress-gateway, выполнив следующую команду: -
Создайте YAML-файл с именем
egress-gateway-cr.yaml, который определяет egress gateway.Пример файла CR для egress gateway
Примените этот YAML-файл, выполнив следующую команду:
-
Проверьте состояние конфигурации gateway, выполнив эту команду:
Желаемый результат считается подтвержденным, если значение в столбце
PROGRAMMEDравноTrue.Пример вывода
-
Необязательно : Разверните gateway на Инфраструктурные узлы:
Щелкните, чтобы развернуть
Предварительные требованияAlauda Container Platform 4.2.0 или более поздней версии, либо обновите CRD Gateway API до последней версии.
a. Создайте ConfigMap с именем
asm-kube-gateway-optionsв том же namespace, где вы планируете развернуть ваш Gateway:- Указывает имя ConfigMap.
- Указывает namespace ConfigMap, который совпадает с namespace gateway.
- Задает node selector и tolerations для размещения pod gateway на Infra Nodes.
b. Сослаться на ConfigMap в ресурсе Gateway, добавив поле
infrastructure.parametersRef:- Указывает имя gateway.
- Указывает namespace gateway.
Проверка
-
Создайте namespace с именем
curl, выполнив следующую команду: -
Включите инъекцию sidecar для namespace. Если в вашей конфигурации используется стратегия обновления
InPlace, выполните эту команду:NOTEЕсли вы используете стратегию обновления
RevisionBased, выполните следующие команды:-
Чтобы определить свой
<revision-name>, выполните следующую команду:Пример вывода:
-
Добавьте label к namespace, используя имя revision, чтобы включить инъекцию sidecar:
-
-
Разверните приложение
curl, выполнив эту команду: -
Инициализируйте и экспортируйте переменную окружения
CURL_POD, содержащую имя pod curl: -
Используя клиент
curl, подтвердите, что вы можете получить доступ кhttpbin.orgчерез egress gateway, выполнив эту команду:Желаемый результат покажет ответ от
httpbin.org, что указывает на то, что исходящий трафик маршрутизируется через настроенный gateway.Пример вывода