Устранение неполадок при устранении неполадок шлюза ingress в сетке служб Istio
В этой статье описывается устранение неполадок шлюза входящего трафика в надстройке сетки сетки Istio для Служба Azure Kubernetes (AKS). Шлюз входящего трафика Istio — это обратный прокси-сервер на основе Envoy, который можно использовать для маршрутизации входящего трафика в рабочие нагрузки в сетке.
Для надстройки сетки службы на основе Istio мы предлагаем следующие параметры шлюза входящего трафика:
Внутренний шлюз входящего трафика, использующий частный IP-адрес.
Внешний шлюз входящего трафика, использующий общедоступный IP-адрес.
Примечание.
Корпорация Майкрософт не поддерживает настройку IP-адреса для внутренних или внешних шлюзов входящего трафика. Все изменения в настройке IP-адресов надстройки сетки службы Istio будут отменены.
Надстройка развертывает модули pod шлюза Istio ingress и развертывания на каждую редакцию. Если вы выполняете обновление канарной версии и имеете две версии плоскости управления, установленные в кластере, может потребоваться устранить неполадки с несколькими модулями pod шлюза входящего трафика в обоих версиях.
Контрольный список по устранению неполадок
Шаг 1. Убедитесь, что брандмауэр или правила NSG не блокируют шлюз входящего трафика
Убедитесь, что у вас нет правил брандмауэра или группы безопасности сети (NSG), которые блокируют трафик к шлюзу входящего трафика. Необходимо явно добавить правило преобразования сетевых адресов назначения (DNAT), чтобы разрешить входящий трафик через Брандмауэр Azure в шлюз входящего трафика.
Шаг 2. Правильно настройте шлюзы, виртуальные службы и правила назначения
При настройке шлюзов, виртуальных служб и правил назначения для маршрутизации трафика через шлюз входящего трафика выполните следующие действия.
Убедитесь, что селектор шлюза входящего трафика в ресурсе шлюза имеет одно из следующих текстовых значений, если используется внешний или внутренний шлюз соответственно:
istio: aks-istio-ingressgateway-external
istio: aks-istio-ingressgateway-internal
Убедитесь, что порты настроены правильно в шлюзах и виртуальных службах. Для шлюза необходимо задать
80
http
для или443
дляhttps
порта. Для виртуальной службы порт должен быть установлен на порт, в который прослушивается соответствующая служба для приложения.Убедитесь, что служба предоставляется в
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, выполните следующие действия по устранению неполадок:
Убедитесь, что значения
INGRESS_HOST_EXTERNAL
SECURE_INGRESS_PORT_EXTERNAL
переменных среды и переменных среды допустимы на основе выходных данных следующей команды:kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
Проверьте наличие сообщений об ошибках в журналах контроллера шлюза:
kubectl logs -n aks-istio-ingress <gateway-service-pod>
Убедитесь, что секреты создаются в
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.