Поделиться через


Устранение неполадок подключений к конечным точкам за пределами виртуальной сети

В этой статье описывается, как устранять неполадки подключения к конечным точкам за пределами виртуальной сети (то есть через общедоступный Интернет) из кластера Microsoft Служба Azure Kubernetes (AKS).

Предварительные требования

  • Azure CLI.

  • Средство URL-адреса клиента (curl).

  • Средство Kubernetes kubectl или аналогичное средство для подключения к кластеру. Чтобы установить kubectl с помощью Azure CLI, выполните команду az aks install-cli .

Контрольный список по устранению неполадок

Является ли проблема постоянной?

Шаг 1. Выполнение основных действий по устранению неполадок

Убедитесь, что вы можете подключиться к общедоступным конечным точкам в Интернете. Инструкции см. в статье "Основные способы устранения неполадок исходящих подключений к кластеру AKS".

Шаг 2. Определение исходящего типа для кластера AKS

Чтобы определить исходящий тип кластера AKS, выполните команду az aks show :

az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"

Если тип исходящего трафика loadBalancerотсутствует, если вы не используете сеть kubenet . Если используется kubenet, убедитесь, что таблица маршрутов по умолчанию не имеет дополнительной конфигурации, которая блокирует исходящее подключение к Интернету. Если вы используете другую сеть, например Azure CNI, динамическое выделение или наложение Azure CNI, таблица маршрутов по умолчанию не создается. В этом случае убедитесь, что группа безопасности сети (группа безопасности сети) не имеет настраиваемой конфигурации, которая блокирует исходящее подключение к Интернету.

Если тип исходящего трафика соответствует userDefinedRouting, убедитесь, что выполнены следующие условия:

  • Доступно устройство исходящего трафика (брандмауэр или прокси-сервер).

  • Устройство исходящего трафика разрешает необходимый исходящий трафик из кластера.

    Чтобы получить список полных доменных имен, разрешенных для кластера AKS, выполните команду az akss-endpoints-endpoints list :

    az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
    

Если тип исходящего трафика managedNATGateway, проверьте, связана ли подсеть AKS с шлюзом NAT, выполнив команду az network nat gateway show :

az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"

Дополнительные сведения об использовании шлюза NAT вместе с AKS см. в разделе "Управляемый шлюз NAT".

Шаг 3. Проверка выходных данных curl при подключении к pod приложения

Коды ответа curl помогают определить тип проблемы. После того как код ответа станет доступным, попробуйте лучше понять, как работает проблема. Дополнительные сведения о кодах состояния HTTP и базовом поведении проблемы см. в следующей таблице.

Источник информации Ссылка
Центр назначения номеров Интернета (IANA) Реестр кода состояния протокола передачи гипертекста (HTTP)
Mozilla Коды состояния HTTP-ответа
Википедия Список кодов состояния HTTP

Следующие коды состояния HTTP могут указывать на перечисленные проблемы.

Код состояния HTTP Проблема Пример
4xx
  1. Проблема влияет на запрос клиента.
  2. Сетевой блокировщик существует между клиентом и сервером.
  1. Запрошенная страница не существует, или у клиента нет разрешения на доступ к странице.
  2. Трафик блокируется группой безопасности сети или брандмауэром.
5xx Проблема влияет на сервер. Приложение не работает или шлюз не работает.

Вы можете попытаться подключиться к конечной точке приложения с помощью curl. Ниже приведен пример команды и выходных данных:

# 404 error code example
$ curl -vv <host IP address>/test.index

*   Trying <host IP address>:80...
* TCP_NODELAY set
* Connected to <host IP address> (<host IP address>) port 80 (#0)
> GET /test.index HTTP/1.1
> Host: <host IP address>
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
...
* Connection #0 to host <host IP address> left intact

Шаг 4. Проверьте, что происходит, если исходящий трафик временно передает виртуальный модуль

Чтобы быстро проверить, вызывает ли устройство исходящего трафика (виртуальное устройство), можно временно разрешить весь трафик через Интернет. Чтобы настроить эту настройку, можно изменить IP-адрес по умолчанию и маршрут 0.0.0.0/0 порта через виртуальное устройство, чтобы перейти через Интернет.

Если устройство исходящего трафика работает хорошо при обходе виртуального устройства, проверьте журналы виртуального устройства, чтобы узнать, какие пакеты запрещены, и добавьте правила разрешения в виртуальном устройстве соответствующим образом.

Проблема временная?

Вы можете столкнуться с временными проблемами исходящего трафика по многим причинам. Чтобы устранить проблемы с исходящим исходящим подключением, выполните следующие действия.

Шаг 1. Проверьте, исчерпаны ли ресурсы pod или узла.

Выполните следующие команды, чтобы проверить, сколько ресурсов используются:

kubectl top pods
kubectl top nodes

Шаг 2. Проверка использования диска операционной системы в значительной степени

Чтобы проверить, используется ли диск операционной системы в значительной степени, выполните следующие действия.

  1. В портал Azure найдите и выберите масштабируемые наборы виртуальных машин.

  2. В списке масштабируемых наборов выберите масштабируемый набор, используемый для кластера AKS.

  3. В области навигации масштабируемого набора перейдите в раздел "Мониторинг " и выберите "Метрики".

  4. Просмотрите метрики диска для масштабируемого набора из раздела "Метрики ", выполнив поиск следующих полей.

    Поле Значение
    Область Имя VMSS
    Пространство имен метрик Компьютер виртуальной машины
    Метрики Метрика диска ОС и диска данных

Дополнительные сведения о метриках см. в разделе Метрики диска ОС и диска данных.

Чтобы просмотреть рекомендации AKS по использованию дисков, выполните следующие действия.

  1. В портал Azure найдите и выберите службы Kubernetes.

  2. В списке служб Kubernetes выберите имя кластера AKS.

  3. В области навигации кластера AKS перейдите в раздел "Мониторинг " и выберите рекомендации помощника.

  4. Просмотрите перечисленные рекомендации по использованию дисков.

Если диск ОС используется в значительной степени, рассмотрите возможность использования следующих средств:

  • Увеличьте размер диска ОС.

  • Переключитесь на временные диски ОС.

Если эти средства защиты не устраняют проблему, проанализируйте процесс, который выполняет тяжелые операции чтения и записи на диске. Затем проверьте, можно ли переместить действия на диск данных вместо диска ОС.

Шаг 3. Проверка того, исчерпан ли порт перевода исходных сетевых адресов

Если приложения делают много исходящих подключений, они могут исчерпать количество доступных портов на IP-адресе исходящего устройства. Следуйте диагностика подсистемы балансировки нагрузки уровня "Стандартный" с метриками, оповещениями и работоспособностью ресурсов, чтобы отслеживать использование и выделение существующего порта преобразования сетевых адресов (SNAT) существующей подсистемы балансировки нагрузки. Мониторинг для проверки или определения риска исчерпания портов SNAT.

Достигнуто или превышено максимальное количество выделенных портов SNAT? В этом случае можно проверить приложение, чтобы определить, используется ли оно повторное использование существующих подключений. Дополнительные сведения см. в статье "Проектирование приложений для эффективного использования подключений".

Если вы считаете, что приложение настроено правильно, и вам потребуется больше портов SNAT, чем число выделенных портов по умолчанию, выполните следующие действия.

  1. Увеличьте количество общедоступных IP-адресов на устройстве исходящего трафика. Если устройство исходящего трафика является подсистемой балансировки нагрузки, можно увеличить количество общедоступных IP-адресов в подсистеме балансировки нагрузки.

  2. Увеличьте количество портов на каждый узел для рабочих узлов AKS.

Заявление об отказе от ответственности за контактные данные сторонней организации

Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.