В чем преимущество использования cni вместо статической таблицы маршрутов в k8s

Добавляя статическую таблицу маршрутов на каждый узел с соответствующими правилами, контейнерная сеть также работает нормально. Например, для трех узлов с тремя разными подсетями моста докеров:

node-1(192.168.0.1):
10.0.1.1/24
node-2(192.168.0.2):
10.0.2.1/24
node-3(192.168.0.3):
10.0.3.1/24

На каждом узле добавьте следующие маршруты:

ip route add 10.0.1.0/24 via 192.168.0.1 dev eth0
ip route add 10.0.2.0/24 via 192.168.0.2 dev eth0
ip route add 10.0.3.0/24 via 192.168.0.3 dev eth0

Когда kube-proxy работает в режиме iptables, cluster-service-ip преобразуется в IP-адрес модуля и, наконец, направляется на связанный узел с помощью таблицы маршрутов.

Итак, в чем преимущество использования плагина cni по сравнению с таблицей маршрутов? Есть ли проблема с производительностью при использовании метода таблицы маршрутов?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
613
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По дизайну Kubernetes имеет плавную структуру. Поды, сервисы, узлы могут появляться и исчезать в зависимости от потребностей либо путем ручных изменений (последовательные обновления, новые развертывания), либо путем автоматического масштабирования (HPA, автоматическое масштабирование узлов). Ручная настройка жесткой сетевой структуры сводит на нет преимущества динамической среды Kubernetes.

Overlay networks are not required by default, however, they help in specific situations. Like when we don’t have enough IP space, or network can’t handle the extra routes. Or maybe when we want some extra management features the overlays provide. One commonly seen case is when there’s a limit of how many routes the cloud provider route tables can handle. For example, AWS route tables support up to 50 routes without impacting network performance. So if we have more than 50 Kubernetes nodes, AWS route table won’t be enough. In such cases, using an overlay network helps.

It is essentially encapsulating a packet-in-packet which traverses the native network across nodes. You may not want to use an overlay network since it may cause some latency and complexity overhead due to encapsulation-decapsulation of all the packets. It’s often not needed, so we should use it only when we know why we need it.

https://itnext.io/an-illustrated-guide-to-kubernetes-networking-part-2-13fdc6c4e24c

Если вы обеспокоены задержкой и накладными расходами, вызванными плагинами CNI, вот удобный Сравнительные результаты сетевых плагинов Kubernetes

Другие вопросы по теме