Устранение неполадок с надстройкой сетки службы Istio MeshConfig
В этой статье описывается устранение неполадок, возникающих при использовании MeshConfig для настройки надстройки сетки службы Istio для службы Microsoft Azure Kubernetes (AKS).
Конфигурация общей конфигурации ConfigMap
Надстройка Istio MeshConfig позволяет настроить определенные параметры на уровне сетки. Для этого создайте локальную карту ConfigMap в aks-istio-system
пространстве имен. Затем плоскость управления Istio объединяет эту карту ConfigMap с ConfigMap по умолчанию. (Если между параметрами существует конфликт, приоритет имеют параметры по умолчанию.) Такой подход называется общей конфигурацией ConfigMap.
Создайте ConfigMap с именем istio-shared-configmap-<asm-revision>
в aks-istio-system
пространстве имен. Например, если используется редакция asm-1-18
, следует присвоить ConfigMap istio-shared-configmap-asm-1-18
имя . Затем укажите конфигурацию сетки в mesh
поле data
раздела, как показано в следующем файле YAML ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-shared-configmap-asm-1-18
namespace: aks-istio-system
data:
mesh: |-
accessLogFile: /dev/stdout
defaultConfig:
holdApplicationUntilProxyStarts: true
Значения в defaultConfig
поле — это параметры на уровне сетки для боковой панели Envoy.
Обновления canary
Прежде чем приступить к обновлению канареек, следуйте указаниям по настройке и обновлению сетки , чтобы создать второй общий файл ConfigMap для новой редакции уровня управления в aks-istio-system
пространстве имен.
Если новый ConfigMap не был создан до начала обновления, все функции, настроенные общим ConfigMap, не будут доступны. Чтобы устранить эту проблему, создайте отсутствующий файл ConfigMap для соответствующей редакции и скопируйте соответствующие поля из предыдущего общего файла ConfigMap.
Дополнительные сведения см. в разделах Обновление надстройки сетки службы на основе Istio для Службы Azure Kubernetes и Надстройка сетки службы Istio с дополнительными исправлениями.
Допустимые, поддерживаемые и запрещенные значения
Надстройка Istio определяет поля MeshConfig как разрешенные и supported
, разрешенные, но unsupported
, и disallowed
. Сведения о допустимых и поддерживаемых полях MeshConfig для надстройки и обзор различных уровней поддержки см. в статье Настройка надстройки сетки службы на основе Istio для службы Azure Kubernetes. Если поля, упомянутые в вышестоящей документации по Istio , не отображаются в списке разрешений для надстройки, эти поля запрещены.
Контрольный список для устранения неполадок
Шаг 1. Убедитесь, что вы изменяете правильную конфигурацию ConfigMap
- Убедитесь, что вы настраиваете общую карту ConfigMap (например,
istio-shared-configmap-asm-1-17
) и не изменяете значение ConfigMap по умолчанию (например,istio-asm-1-17
). - Убедитесь, что общая конфигурация ConfigMap указывает на правильную редакцию в заголовке.
Шаг 2. Удаление отступов табуляции из определения MeshConfig в общей конфигурации ConfigMap
В определении MeshConfig в общей конфигурации ConfigMap (в разделе data.mesh
) убедитесь, что вместо вкладок используются пробелы. Удалите все отображаемые символы табуляции.
Шаг 3. Убедитесь, что поля MeshConfig допустимы
Если поля нераспознаны или не включены в список разрешенных MeshConfig, обновления в MeshConfig отклоняются. Проверьте, разрешены ли нужные поля MeshConfig, и убедитесь, что поля написаны правильно.
Шаг 4. Предотвращение перегрузки CoreDNS
Проблемы, связанные с перегрузкой CoreDNS, могут потребовать изменения определенных параметров DNS Istio, таких как dnsRefreshRate
поле в определении Istio MeshConfig.
Шаг 5. Устранение проблем с потреблением памяти
Если в Envoy используется большое потребление памяти, проверьте параметры Envoy для сбора статистических данных. Если вы настраиваете метрики Istio с помощью MeshConfig, помните, что некоторые метрики могут иметь высокую кратность и, следовательно, привести к более высокому объему памяти.
Рекомендуется использовать discoverySelectors
поле в определении MeshConfig, чтобы уменьшить потребление памяти для Istiod и Envoy. Дополнительные сведения см. в разделе Общие сведения об устранении неполадок с надстройкой сетки службы Istio.
Шаг 6. Бесплатные ядра ЦП
Если используются все ядра ЦП, concurrency
поле в определении MeshConfig может быть неправильно настроено. Если это поле равно нулю, Envoy использует все ядра ЦП. В этом случае удалите из concurrency
определения MeshConfig.
concurrency
Если поле не настроено, количество используемых ядер ЦП определяется запросами ЦП и ограничениями.
Шаг 7. Исправление условий гонки pod и sidecar
Если модуль pod приложения запускается до запуска бокового модуля Envoy, приложение может перестать отвечать на запросы или перезапускаться. Инструкции по устранению этой проблемы см. в статье Pod или контейнеры начинаются с проблем с сетью, если istio-proxy не готов. В частности, можно задать holdApplicationUntilProxyStarts
в поле defaultConfig
MeshConfig значение , true
чтобы предотвратить эти условия гонки.
Ссылки
Настройка надстройки сетки службы на основе Istio для Службы Azure Kubernetes
Устранение неполадок с надстройкой сетки службы "Общий Istio"
Устранение неполадок с надстройкой входящего шлюза Istio service mesh
Устранение неполадок при обновлении дополнительных исправлений надстройки сетки службы Istio
Устранение неполадок с сертификатами ЦС надстройки для подключения к сети службы Istio
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Заявление об отказе от ответственности за контактные данные сторонней организации
Корпорация Майкрософт предоставляет сторонние контактные данные, чтобы помочь вам найти дополнительные сведения по этой теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактной информации сторонних поставщиков.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.