Лог плагина Istio CNI предоставляет информацию о том, как плагин настраивает перенаправление трафика приложения в поде на основе PodSpec
.
Плагин работает в пространстве процесса контейнерного рантайма, поэтому записи лога CNI можно увидеть в логе kubelet
.
Для упрощения отладки плагин CNI также отправляет свой лог в DaemonSet istio-cni-node
.
Уровень логирования по умолчанию для плагина CNI — info
. Чтобы получить более подробный вывод лога, можно изменить уровень,
отредактировав cni.values.logLevel
в конфигурации компонента ServiceMesh для istioCNI.
Лог пода DaemonSet Istio CNI также содержит информацию об установке плагина CNI и устранении гонок.
Готовность 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-сервер, который слушает порты перенаправления трафика
входящего/исходящего трафика и проверяет, может ли тестовый трафик быть перенаправлен на 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, чтобы убедиться в отсутствии дублирующихся настроек.