Я настраивал Kubernets с помощью kubeadm, и я использовал Flannel для настройки сети pod. Настройка в основном работала, но я сталкивался с различными проблемами (и ошибками), и теперь я пытаюсь лучше понять различные этапы процесса настройки сети (например, CNI и фланель).
С точки зрения конечного пользователя / администратора я просто передаю --pod-network-cidr
с некоторым сетевым аргументом kubeadm
, а затем позже применяю конфигурацию pod для фланели, используя kubectl
. Kubernetes тогда запустит фланелевую капсулу на каждом из моих узлов. Предполагая, что все работает, фланель должен затем использовать сетевые интерфейсы контейнера (CNI) Kubernetes для настройки сети pod.
В результате этого процесса я должен получить сеть pod, которая включает в себя следующее:
- A
cni0
мост.
- A
flannel.x
интерфейс.
- Записи iptables для маршрутизации между хостом и сетью pod.
Следующие файлы и двоичные файлы, кажется, участвуют в установке:
kubectl
читает конфигурацию CNI, такую как /etc/cni/net.d/10-flannel.conflist
, и вызывает плагин CNI, описанный в файле конфигурации.
- Каким-то образом создается папка
/var/lib/cni
, которая, кажется, содержит файлы конфигурации для настройки сети.
- Плагин CNI, такой как
/opt/cni/bin/flannel
, запущен, я пока не понимаю, что он делает.
Что мне не хватает в этом списке и как (2.) вписывается в эти шаги. Как создается /var/lib/cni
и какая программа отвечает за это?