Кажется, что-то ловит TCP-трафик на стручки - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь развернуть Kubernetes с помощью Calico (IPIP) с помощью Kubeadm.После завершения развертывания я развертываю Calico с использованием этих манифестов

kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

Перед применением я редактирую CALICO_IPV4POOL_CIDR и устанавливаю его в 10.250.0.0/17, а также использую команду kubeadm init --pod-cidr 10.250.0.0/17.

Через несколько секунд модули CoreDNS (например, получение addr 10.250.2.2) начинают перезапускаться с ошибкой 10.250.2.2:8080, соединение отказано.

Теперь немного копаем:

из любогоузел в кластере ping 10.250.2.2 работает и достигает модуля pod (это показывает tcpdump в пространстве имен pod net).

из другого модуля (в другом узле) curl 10.250.2.2:8080 хорошо работает

из любого узла вcurl 10.250.2.2:8080 терпит неудачу при отказе в соединении

Поскольку это модуль coredns, он слушает на 53 и udp, и tcp, поэтому я попробовал netcat с узлов

nc 10.250.2.2 53 - соединение отклонено nc -u 10.250.2.2 55 -работает

Теперь у меня есть tcpdump, каждый интерфейс на исходном узле для порта 8080 и curl в модуль CoreDNS, кажется, даже не покидает узел ... sooo iptables?

Я также пробовалткать, канал и фланель, все кажется тУ меня та же проблема.

У меня уже нет идей ... какие-нибудь указатели, пожалуйста?

1 Ответ

0 голосов
/ 30 января 2019

Кажется, что проблема с реализацией Calico, модули CoreDNS чувствительны к успешному функционированию модулей сети CNI.Для правильной реализации сетевого плагина CNI необходимо включить флаг --pod-network-cidr в команду kubeadm init, а затем применить то же значение к параметру CALICO_IPV4POOL_CIDR внутри calico.yml.

Более того, дляДля успешной сетевой установки Pod необходимо применить некоторые правила RBAC , чтобы получить достаточные разрешения в соответствии с общими ограничениями безопасности кластера, как описано в официальной документации Kubernetes :

Для правильной работы Calico вам нужно передать --pod-network-cidr = 192.168.0.0 / 16 в kubeadm init или обновить файл calico.yml, чтобы он соответствовал вашей сети Pod.Обратите внимание, что Calico работает только на amd64.

kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

В вашем случае я бы переключился на последние версии Calico по крайней мере с v3.3, как указано в примере.

Есливы заметили, что вы правильно запускаете установку сетевого плагина Pod, воспользуйтесь возможностью и обновите вопрос, указав текущую настройку среды и версии компонентов Kubernetes со статусами работоспособности.

...