Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Load Balancer работает на уровне 4 модели взаимодействия с открытыми системами (OSI), которая поддерживает как входящие, так и исходящие сценарии. Он распределяет входящие потоки, поступающие в интерфейсную часть подсистемы балансировки нагрузки на экземпляры серверного пула.
Общедоступная подсистема балансировки нагрузки, интегрированная с AKS, служит двумя целями:
- Предоставьте исходящие подключения к узлам кластера в виртуальной сети AKS, преобразуя частный IP-адрес в публичный IP-адрес из части исходящего пула.
- Предоставление доступа к приложениям через службы Kubernetes типа
LoadBalancer, что позволяет легко масштабировать приложения и создавать высокодоступные службы.
В этой статье рассматривается интеграция с общедоступной подсистемой балансировки нагрузки в AKS. Сведения об интеграции с внутренней подсистемой балансировки нагрузки см. в статье "Использование внутренней подсистемы балансировки нагрузки" в AKS.
Предпосылки
- Azure Load Balancer доступен в двух номерах SKU: "Базовый" и "Стандартный". Номер SKU уровня "Стандартный" используется по умолчанию при создании кластера AKS. Номер SKU ценовой категории “Стандартный” позволяет получить доступ к дополнительным функциям, таким как увеличенный серверный пул, несколько пулов узлов, Зоны доступности, и является безопасным по умолчанию. Это рекомендуемый номер SKU подсистемы балансировки нагрузки для AKS. Дополнительные сведения о номерах SKU "Базовый" и "Стандартный" см. в сравнении SKU Azure Load Balancer.
- Полный список поддерживаемых заметок для служб Kubernetes с типом
LoadBalancerсм. в заметках LoadBalancer. - В этой статье предполагается, что у вас есть кластер AKS с Azure Load Balancer ценовой категории Стандартный. Если вам нужен кластер AKS, можно создать его с помощью Azure CLI, Azure PowerShell или портала Azure.
Important
Если вы предпочитаете использовать собственный шлюз, брандмауэр или прокси-сервер для предоставления исходящего подключения, можно пропустить создание исходящего пула подсистемы балансировки нагрузки и соответствующего внешнего IP-адреса с помощью исходящего типа в качестве userDefinedRouting (UDR). Исходящий тип определяет метод исходящего трафика для кластера и по умолчанию для типа LoadBalancer.
Limitations
При создании и администрировании кластеров AKS, поддерживающих подсистему балансировки нагрузки ценовой категории "Стандартный", действуют следующие ограничения.
AKS управляет жизненным циклом и операциями узлов агента. Изменение ресурсов IaaS, связанных с узлами агента, не поддерживается. Пример неподдерживаемой операции — внесение вручную изменений в группу ресурсов подсистемы балансировки нагрузки.
Необходим по крайней мере один общедоступный IP-адрес или префикс IP-адреса для передачи исходящего трафика из кластера AKS. Общедоступный IP-адрес или префикс IP-адреса требуется для поддержания связи между уровнем управления и узлами агентов, а также для обеспечения совместимости с предыдущими версиями AKS. У вас есть следующие варианты для указания общедоступных IP-адресов или IP-префиксов с помощью балансировщика нагрузки SKU "Стандартный".
- Предоставьте собственные общедоступные IP-адреса.
- Предоставьте собственные префиксы общедоступных IP-адресов.
- Укажите число до 100, чтобы разрешить кластеру AKS создавать несколько общедоступных IP-адресов SKU уровня "Стандартный " в той же группе ресурсов, что и кластер AKS. Эта группа ресурсов обычно именуется с
MC_в начале. AKS назначит общедоступный IP-адрес подсистеме балансировки нагрузки ценовой категории "Стандартный". По умолчанию один общедоступный IP-адрес автоматически создается в той же группе ресурсов, что и кластер AKS, если не указан общедоступный IP-адрес, префикс общедоступного IP-адреса или число IP-адресов. Кроме того, необходимо разрешить общедоступные адреса и не создавать политики Azure, запрещающие создание IP-адресов.
Общедоступный IP-адрес, созданный AKS, нельзя повторно использовать в качестве пользовательского общедоступного IP-адреса. Необходимо создать и управлять всеми пользовательскими IP-адресами.
При создании кластера AKS можно определить только номер SKU подсистемы балансировки нагрузки. Вы не сможете изменить номер SKU подсистемы балансировки нагрузки после создания кластера AKS.
В одном кластере можно использовать только один тип SKU подсистемы балансировки нагрузки (базовый или стандартный).
Подсистемы балансировки нагрузки SKU уровня "Стандартный" поддерживают только IP-адреса SKU уровня "Стандартный".
Служба приватного канала не поддерживается, если для типа внутреннего пула подсистемы балансировки нагрузки задано
nodeIPзначение .
Создание службы подсистемы балансировки нагрузки в AKS
После создания кластера AKS с исходящим типом LoadBalancer (по умолчанию) кластер готов использовать подсистему балансировки нагрузки для предоставления служб.
Создайте манифест службы с именем
public-svc.yaml, который создает общедоступную службу типаLoadBalancer.apiVersion: v1 kind: Service metadata: name: public-svc spec: type: LoadBalancer ports: - port: 80 selector: app: public-app
Укажите IP-адрес подсистемы балансировки нагрузки
Если вы хотите использовать определенный IP-адрес с подсистемой балансировки нагрузки, у вас есть два варианта, чтобы указать IP-адрес:
-
Задайте заметки службы (рекомендуется): используйте
service.beta.kubernetes.io/azure-load-balancer-ipv4для IPv4-адреса иservice.beta.kubernetes.io/azure-load-balancer-ipv6для IPv6-адреса. -
Добавьте свойство LoadBalancerIP в манифест YAML подсистемы балансировки нагрузки: добавьте
Service.Spec.LoadBalancerIPсвойство в манифест YAML подсистемы балансировки нагрузки. Это поле не рекомендуется использовать после вышестоящего Kubernetes, и оно не поддерживает двойной стек. Текущее использование остается неизменным и существующие службы, как ожидается, будут работать без изменений.
Развертывание манифеста службы подсистемы балансировки нагрузки
Разверните манифест общедоступной службы с помощью
kubectl applyи укажите имя манифеста YAML.kubectl apply -f public-svc.yamlAzure Load Balancer настраивается с новым общедоступным IP-адресом, который интерфейсирует новую службу. Так как в Azure Load Balancer может быть несколько интерфейсных IP-адресов, каждая новая служба, развернутая, получает новый выделенный ВНЕШНИй IP-адрес для уникального доступа.
Убедитесь, что служба создана, а балансировщик нагрузки настроен с помощью команды
kubectl get service.kubectl get service public-svcПри просмотре сведений о службе общедоступный IP-адрес, созданный для этой службы в подсистеме балансировки нагрузки, отображается в столбце EXTERNAL-IP выходных данных. Для изменения <> IP-адреса на фактический общедоступный IP-адрес может потребоваться несколько минут. В следующем примере выходных данных показано успешное создание службы:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default public-svc LoadBalancer 10.0.39.110 203.0.113.187 80:32068/TCP 52sПолучите более подробные сведения о службе с помощью
kubectl describe serviceкоманды.kubectl describe service public-svcСледующий пример выходных данных — это сокращенная версия выходных данных после выполнения
kubectl describe service. LoadBalancer Ingress показывает внешний IP-адрес, предоставляемый службой. IP-адрес содержит внутренние адреса.Name: public-svc Namespace: default Labels: <none> Annotations: <none> Selector: app=public-app ... IP: 10.0.39.110 ... LoadBalancer Ingress: 203.0.113.187 ... TargetPort: 80/TCP NodePort: 32068/TCP ... Session Affinity: None External Traffic Policy: Cluster ...
Следующий шаг
Azure Kubernetes Service