Вот ключевой момент, который нужно понять
Когда ты разворачиваешь Istio, тебе нужно запускать Istio CNI. Это не означает, что ты заменяешь CNI своего Kubernetes-кластера.
Он работает вместе с уже существующим CNI (например, Calico или Cilium) как chaining-плагин.
Вот в чём основное отличие.
Когда под стартует, Kubernetes вызывает CNI-плагин, чтобы настроить сеть: выдать IP, создать сетевые интерфейсы, прописать маршруты и т.д.
То есть именно он делает всю «реальную» сетевую работу.
Вот что делает Istio CNI:
- Работает только с подами, которые входят в mesh (неймспейсы с лейблом
dataplane-mode=ambient)- Когда он обнаруживает новые поды, входящие в mesh, он уведомляет Istio CNI node agent
- Node agent добавляет правила iptables в сетевой namespace пода, чтобы перенаправить трафик пода в прокси Ztunnel
В целом, Istio CNI - это chaining plugin. Это значит, что несколько CNI-плагинов выполняются последовательно для одного и того же пода, и каждый добавляет свою часть сетевой логики.
Например:
- Под стартует
- Calico (назначает IP, настраивает маршруты)
- Istio CNI (добавляет правила iptables для редиректа трафика)
👉 DevOps Portal
