Устранение неполадок с надстройкой сетки сетки Istio в MeshConfig
В этой статье описывается, как устранять неполадки, возникающие при использовании MeshConfig для настройки надстройки сетки сетки Istio для Microsoft Служба Azure Kubernetes (AKS).
Конфигурация Общей конфигурации ConfigMap
Надстройка Istio MeshConfig позволяет настроить определенные параметры на уровне сетки. Для этого создайте локальную конфигурацию aks-istio-system
в пространстве имен. Затем плоскость управления Istio объединяет этот ConfigMap с конфигурацией по умолчанию. (Если конфликт существует между параметрами, параметры по умолчанию имеют приоритет.) Этот подход называется конфигурацией общей конфигурации ConfigMap.
Создайте ConfigMap, именованный istio-shared-configmap-<asm-revision>
aks-istio-system
в пространстве имен. Например, если используется редакцияasm-1-18
, следует присвоить имя ConfigMap. istio-shared-configmap-asm-1-18
Затем вы укажите конфигурацию сетки в mesh
поле data
раздела, как показано в следующем файле ConfigMap YAML:
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.
Канареарные обновления
Перед началом обновления канарной системы следуйте инструкциям по настройке сетки и обновлению, чтобы создать вторую общую конфигурацию ConfigMap для новой версии уровня управления в aks-istio-system
пространстве имен.
Если перед началом обновления не был создан новый 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
) и не изменяете конфигурацию по умолчанию (например,istio-asm-1-17
). - Убедитесь, что общий ConfigMap указывает на правильную редакцию в заголовке.
Шаг 2. Удаление отступов вкладок из определения MeshConfig в общей конфигурации ConfigMap
В определении MeshConfig в общей конфигурации (в разделе data.mesh
) убедитесь, что вместо вкладок используются пробелы. Удалите все отображаемые символы вкладок.
Шаг 3. Убедитесь, что поля 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 и бокового автомобиля
Если модуль pod приложения запускается до запуска бокового автомобиля Envoy, приложение может перестать отвечать или перезапустить его. Инструкции о том, как избежать этой проблемы, см. в статье Pod или контейнеры, начинающиеся с сетевых проблем, если istio-proxy не готов. В частности, можно задать holdApplicationUntilProxyStarts
поле MeshConfig для defaultConfig
true
предотвращения этих условий гонки.
Ссылки
Настройка надстройки сетки службы на основе Istio для Служба Azure Kubernetes
Устранение неполадок при устранении неполадок шлюза ingress в сетке служб Istio
Устранение неполадок при обновлении дополнительных исправлений в сетке служб Istio
Устранение неполадок с сертификатом ЦС для надстройки в сетке службы Istio
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Заявление об отказе от ответственности за контактные данные сторонней организации
Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.