Устранение неполадок плагина Istio CNI
Содержание
Лог
Лог плагина Istio CNI предоставляет информацию о том, как плагин настраивает перенаправление трафика приложений в подах на основе PodSpec.
Плагин работает в пространстве процесса контейнерного рантайма, поэтому записи лога CNI можно увидеть в логе kubelet.
Для упрощения отладки плагин CNI также отправляет свой лог в DaemonSet istio-cni-node.
Уровень логирования по умолчанию для плагина CNI — info. Чтобы получить более подробный вывод лога, можно изменить уровень,
отредактировав cni.values.logLevel в конфигурации компонента ServiceMesh для istioCNI.
Лог пода DaemonSet Istio CNI также содержит информацию об установке плагина CNI и устранении гонок.
Готовность DaemonSet
Готовность DaemonSet CNI указывает на то, что плагин Istio CNI корректно установлен и настроен.
Если DaemonSet Istio CNI не готов, это свидетельствует о проблемах. Для диагностики смотрите логи DaemonSet istio-cni-node.
Устранение гонок
По умолчанию в DaemonSet Istio CNI включено устранение гонок, которое эвакуирует под, запущенный до того, как плагин CNI стал готов. Чтобы понять, какие поды были эвакуированы, ищите в логах строки вида:
Диагностика ошибки запуска пода
Распространённая проблема с плагином CNI — неудачный запуск пода из-за ошибки настройки сетевого окружения контейнера. Обычно причина ошибки записывается в события пода и видна через описание пода:
Если под постоянно получает ошибку инициализации, проверьте лог init-контейнера istio-validation на наличие ошибок «connection refused», например:
Init-контейнер istio-validation запускает локальный dummy-сервер, который слушает порты перенаправления трафика inbound/outbound и проверяет, может ли тестовый трафик быть перенаправлен на dummy-сервер.
Если перенаправление трафика пода не настроено корректно плагином CNI, init-контейнер istio-validation блокирует запуск пода, чтобы предотвратить обход трафика.
Чтобы проверить наличие ошибок или неожиданных сетевых настроек, ищите ID пода в логе istio-cni-node.
Другим симптомом неисправного плагина CNI является постоянная эвакуация пода приложения при запуске. Обычно это происходит из-за неправильной установки плагина, из-за чего перенаправление трафика пода не может быть настроено. Логика CNI устранения гонок считает под сломанным из-за гонки и постоянно эвакуирует его. При возникновении такой проблемы проверьте лог DaemonSet CNI, чтобы узнать, почему плагин не удалось корректно установить.
При использовании Multus для цепочки нескольких провайдеров CNI, например Kube-OVN, это может привести к многократной установке конфигурации плагина Istio CNI (как в Multus, так и в Kube-OVN), что вызывает циклическую цепочку CNI и невозможность настроить сеть для пода.
Для устранения этой проблемы можно явно указать cni.values.cniConfFileName с именем конфигурационного файла Multus.
Также рекомендуется вручную проверить все конфигурации CNI, чтобы убедиться в отсутствии дублирующихся настроек.