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