Лог плагина 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-сервер, который слушает порты перенаправления трафика 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, чтобы убедиться в отсутствии дублирующих настроек.