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


Устранение неполадок при устранении неполадок шлюза ingress в сетке служб Istio

В этой статье описывается устранение неполадок шлюза входящего трафика в надстройке сетки сетки Istio для Служба Azure Kubernetes (AKS). Шлюз входящего трафика Istio — это обратный прокси-сервер на основе Envoy, который можно использовать для маршрутизации входящего трафика в рабочие нагрузки в сетке.

Для надстройки сетки службы на основе Istio мы предлагаем следующие параметры шлюза входящего трафика:

  • Внутренний шлюз входящего трафика, использующий частный IP-адрес.

  • Внешний шлюз входящего трафика, использующий общедоступный IP-адрес.

Примечание.

Корпорация Майкрософт не поддерживает настройку IP-адреса для внутренних или внешних шлюзов входящего трафика. Все изменения в настройке IP-адресов надстройки сетки службы Istio будут отменены.

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

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

Шаг 1. Убедитесь, что брандмауэр или правила NSG не блокируют шлюз входящего трафика

Убедитесь, что у вас нет правил брандмауэра или группы безопасности сети (NSG), которые блокируют трафик к шлюзу входящего трафика. Необходимо явно добавить правило преобразования сетевых адресов назначения (DNAT), чтобы разрешить входящий трафик через Брандмауэр Azure в шлюз входящего трафика.

Шаг 2. Правильно настройте шлюзы, виртуальные службы и правила назначения

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

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

    • istio: aks-istio-ingressgateway-external
    • istio: aks-istio-ingressgateway-internal
  2. Убедитесь, что порты настроены правильно в шлюзах и виртуальных службах. Для шлюза необходимо задать 80 http для или 443 для httpsпорта. Для виртуальной службы порт должен быть установлен на порт, в который прослушивается соответствующая служба для приложения.

  3. Убедитесь, что служба предоставляется в hosts спецификации для шлюза и виртуальной службы. Если возникают проблемы, связанные с Host заголовком в запросах, попробуйте добавить в список разрешений все узлы, содержащие подстановочный знак звездочки ("*"), например в этом примере конфигурации шлюза. Однако рекомендуется не изменять список разрешений как рабочую практику. Кроме того, спецификация hosts должна быть явно настроена.

Шаг 3. Исправление работоспособности модуля pod шлюза входящего трафика

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

Если модуль istiod pod не отображается в состоянии готовности, убедитесь, что определения пользовательских ресурсов Istio (CRD) и base диаграмма Helm установлены правильно. Для этого выполните следующую команду:

helm ls --all --all-namespaces

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

Если модуль istiod pod работоспособен, но модули pod шлюза входящего трафика не отвечают, проверьте следующие ресурсы шлюза входящего трафика в aks-istio-ingress пространстве имен, чтобы получить дополнительные сведения:

  • Выпуск Helm
  • Развертывание
  • Service

Кроме того, дополнительные сведения об отладке шлюза и бокового автомобиля см. в разделе "Устранение неполадок с надстройкой сетки службы Istio".

Шаг 4. Настройка использования ресурсов

Высокая загрузка ресурсов возникает, когда параметры минимальной или максимальной реплики по умолчанию для Istiod и шлюзы недостаточно. В этом случае измените конфигурации автомасштабирования pod по горизонтали.

Шаг 5. Устранение неполадок безопасного шлюза входящего трафика

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

  1. Убедитесь, что значения INGRESS_HOST_EXTERNAL SECURE_INGRESS_PORT_EXTERNAL переменных среды и переменных среды допустимы на основе выходных данных следующей команды:

    kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
    
  2. Проверьте наличие сообщений об ошибках в журналах контроллера шлюза:

    kubectl logs -n aks-istio-ingress <gateway-service-pod>
    
  3. Убедитесь, что секреты создаются в aks-istio-ingress пространстве имен:

    kubectl -n aks-istio-ingress get secrets
    

Пример в шлюзе безопасного входящего трафика для надстройки сетки службы Istio для Служба Azure Kubernetesproductpage-credential должен быть указан секрет.

После включения надстройки поставщика секретов Azure Key Vault необходимо предоставить доступ к управляемому удостоверению, назначенному пользователем, надстройке в Azure Key Vault. Неправильное настройка доступа к Azure Key Vault предотвратит создание секрета productpage-credential .

После создания SecretProviderClass ресурса убедитесь, что секреты синхронизируются из Azure Key Vault с кластером, убедитесь, что пример pod secrets-store-sync-productpage , ссылающийся на этот ресурс, успешно развернут.

Ссылки

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

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

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

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

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