Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Статический шлюз исходящего трафика в AKS предоставляет упрощенное решение для настройки фиксированных исходных IP-адресов для исходящего трафика из рабочих нагрузок AKS. Эта функция позволяет маршрутизировать исходящий трафик через выделенный пул узлов шлюза. Используя шлюз статического исходящего трафика, вы можете эффективно управлять исходящими IP-адресами и управлять ими и обеспечить безопасное и согласованное взаимодействие рабочих нагрузок AKS с внешними системами с помощью предопределенных IP-адресов.
В этой статье приведены пошаговые инструкции по настройке пула узлов шлюза статического исходящего трафика в кластере AKS, что позволяет настроить фиксированные ИСХОДНЫе IP-адреса для исходящего трафика из рабочих нагрузок Kubernetes.
Рекомендации и ограничения
Статический шлюз исходящего трафика не поддерживается в кластерах с подсетью Pod Azure CNI.
Политики сети Kubernetes не применяются к трафику, выходя из кластера через пул узлов шлюза.
- Это не должно повлиять на управление трафиком кластера, так как затрагиваются только исходящий трафик из аннотированных модулей pod, перенаправленных в пул узлов шлюза.
Пул узлов шлюза не предназначен для рабочих нагрузок общего назначения и должен использоваться только для исходящего трафика.
Пулы узлов Windows нельзя использовать в качестве пулов узлов шлюза.
Модули pod hostNetwork не могут быть аннотированы для использования пула узлов шлюза.
Pod могут использовать пул узлов шлюза только если находятся в том же пространстве имен, что и ресурс
StaticGatewayConfiguration.
Создание или обновление кластера AKS с помощью статического шлюза исходящего трафика
Прежде чем создавать пулы узлов шлюза и управлять ими, необходимо включить функцию шлюза статического исходящего трафика для кластера AKS. Это можно сделать при создании нового кластера или обновлении существующего кластера с помощью az aks update.
az aks create -n <cluster-name> -g <resource-group> --enable-static-egress-gateway
Создание пула узлов шлюза
После включения функции создайте пул узлов выделенного шлюза. Этот пул узлов обрабатывает исходящий трафик через указанный префикс общедоступного IP-адреса. Размер --gateway-prefix-size префикса общедоступного IP-адреса, применяемого к узлам пула узлов шлюза. Допустимый диапазон — 28-31.
az aks nodepool add --cluster-name <cluster-name> \
--name <nodepool-name> \
--resource-group <resource-group> \
--mode gateway \
--node-count <number-of-nodes> \
--gateway-prefix-size <prefix-size>
Примечание.
- Количество узлов должно соответствовать емкости, разрешенной выбранным размером префикса. Например, префикс /30 поддерживает до 4 узлов, а для обеспечения высокой доступности требуется не менее 2 узлов. Так как число узлов невозможно настроить динамически, запланируйте узлы в соответствии с фиксированным ограничением, заданным размером префикса.
- Вы можете определить номер SKU виртуальной машины для использования в пуле узлов шлюза с параметром
--vm-size. Вы должны понимать свои конкретные потребности и планировать соответствующим образом, чтобы обеспечить правильную производительность и баланс затрат.
Масштабирование пула узлов шлюза (необязательно)
При необходимости можно изменить размер пула узлов шлюза в пределах ограничений, определенных размером префикса, но он не поддерживает автомасштабирование.
az aks nodepool scale --cluster-name <cluster-name> -n <nodepool-name> --node-count <desired-node-count>
Создание конфигурации статического шлюза
Определите конфигурацию шлюза StaticGatewayConfiguration , создав пользовательский ресурс. Эта конфигурация указывает, какой пул узлов и префикс общедоступного IP-адреса следует использовать.
apiVersion: egressgateway.kubernetes.azure.com/v1alpha1
kind: StaticGatewayConfiguration
metadata:
name: <gateway-config-name>
namespace: <namespace>
spec:
gatewayNodepoolName: <nodepool-name>
excludeCidrs: # Optional
- 10.0.0.0/8
- 172.16.0.0/12
- 169.254.169.254/32
publicIpPrefixId: /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Network/publicIPPrefixes/<prefix-name> # Optional
Совет
Если не задано publicIpPrefixId, для вас автоматически будет создан префикс общедоступного IP-адреса. При выполнении kubectl describe StaticGatewayConfiguration <gateway-config-name> -n <namespace>вы увидите значение "Префикс исходящего ip-адреса" в состоянии. Это только что созданный префикс общедоступного IP-адреса. Можно также использовать существующий префикс общедоступного IP-адреса, указав его идентификатор ресурса в аргументе publicIpPrefixId . В этом случае необходимо предоставить роль "Участник сети" удостоверению кластера AKS.
Поддержка статических частных IP-адресов (предварительная версия)
Это важно
Для поддержки статических частных IP-адресов требуются кластеры под управлением Kubernetes версии 1.34 или более поздней версии, а также подписка с включенным флагом Microsoft.ContainerService/StaticEgressGatewayPreview управления экспозицией компонентов Azure (AFEC). Следуйте инструкциям по предварительной версии функции регистрации , чтобы запросить флаг компонента перед созданием пула узлов Gateway VirtualMachines.
Если необходимо сохранить исходящий трафик на частных адресах, включите поддержку частных IP-адресов в пуле узлов шлюза. Используйте ту же az aks nodepool add команду и настройте пул узлов на использование типа набора VirtualMachines VM, отключив при этом создание общедоступных IP-адресов:
az aks nodepool add --cluster-name <cluster-name> \
--name <nodepool-name> \
--resource-group <resource-group> \
--mode gateway \
--node-count <number-of-nodes> \
--vm-set-type VirtualMachines \
--gateway-prefix-size <prefix-size>
В этой конфигурации параметр provisionPublicIps=false сохраняет частные IP-адреса, которые выделены для узлов шлюза, на всё время существования StaticGatewayConfiguration. При запуске kubectl describe StaticGatewayConfiguration <gateway-config-name> -n <namespace>egressIpPrefix в поле отображается разделенный запятыми список статических частных IP-адресов. Вы продолжаете использовать те же API и манифесты для остальной части рабочего процесса, включая ресурс StaticGatewayConfiguration и аннотации pod.
Аномирование модулей pod для использования конфигурации шлюза
Чтобы маршрутизировать трафик из определенных модулей pod через пул узлов шлюза, заметите шаблон pod в конфигурации развертывания.
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment-name>
namespace: <namespace>
spec:
template:
metadata:
annotations:
kubernetes.azure.com/static-gateway-configuration: <gateway-config-name>
Примечание.
Подключаемый модуль CNI на каждом узле автоматически настраивает pod для маршрутизации трафика через выбранный узел шлюза.
Мониторинг конфигураций шлюза и управление ими
После развертывания можно отслеживать состояние конфигураций шлюза через кластер AKS. Раздел состояния в StaticGatewayConfiguration ресурсе обновляется с такими сведениями, как назначенные IP-адреса и конфигурации WireGuard.
Удаление пула узлов шлюза (необязательно)
Чтобы удалить пул узлов шлюза, убедитесь, что все связанные конфигурации надлежащим образом обрабатываются перед удалением.
az aks nodepool delete --cluster-name <cluster-name> -n <nodepool-name>
Отключение функции шлюза статического исходящего трафика (необязательно)
Если вам больше не нужен шлюз статического исходящего трафика, можно отключить эту функцию и удалить оператор. Сначала убедитесь, что все пулы узлов шлюза удаляются.
az aks update -n <cluster-name> -g <resource-group> --disable-static-egress-gateway
Следуя этим инструкциям, вы можете эффективно настроить конфигурации шлюза статического исходящего трафика и управлять ими в кластере AKS, что позволяет управлять управляемым и согласованным исходящим трафиком из рабочих нагрузок.