Я получаю сообщение об ошибке "NetworkPlugin cni не удалось настроить модуль" при развертывании модуля - PullRequest
0 голосов
/ 03 марта 2020

Я новичок в Кубернетесе. Просто настройте стек одного главного и другого подчиненного (два экземпляра Ec2) при попытке развернуть мой первый модуль на подчиненном устройстве. Я получил ошибку ниже. Не могли бы вы помочь мне? Файл ошибок прилагается.

Ошибка:

Предупреждение FailedCreatePodSandBox 34m kubelet, slave-node Не удалось создать изолированную программную среду pod: rp c error: code = Неизвестный des c = не удалось настроить контейнер песочницы "26cdaf3170806455a4731218d20c482bb2a41ded6ef85c90b560058e332df684" сеть для модуля "label-demo": networkPlugin cni не удалось настроить модуль pod "label-demo_default" network: opensun/unsuen/un*un.uner_ru/lan*en.un.uner_ru/lan* : нет такого файла или каталога

1 Ответ

0 голосов
/ 04 марта 2020

Поскольку состояние этого кластера, как именно он был развернут, а также выходные сообщения kubectl, kubelet неизвестны, я попытаюсь дать некоторые шаги по устранению неполадок и обстоятельства, которые могут привести к решению некоторых из проблемы, которые встречаются здесь.

  • Kubeadm
  • Фланель
  • Kubelet
  • Репродукция
  • Дополнительные ссылки

Kubeadm

Первым делом идет процесс подготовки кластера Kubernetes с kubeadm:

Проверьте все требования и шаги с официальной документацией:

При вызове команды $ kubeadm init обязательно добавьте такие параметры, как:

  • --apiserver-advertise-address=IP_ADDRESS_OF_MASTER_NODE
  • --pod-network-cidr=POD_NETWORK_CIDR_WITH_ACCORDANCE_TO_CNI

Предоставление кластера без параметра --pod-network-cidr может привести к проблемам, связанным с CNI.

Для Flannel по умолчанию сетевой модуль pod равен 10.244.0.0/16.

После kubeadm init вам необходимо применить один из множества CNI (например, фланелевой или ситцевый), поскольку инструмент kubeadm не делает это автоматически.

Проверьте, все ли узлы находятся в Ready состоянии с помощью команды:

$ kubectl get nodes -o wide

Вывод этой команды должен выглядеть следующим образом:

NAME   STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
k1     Ready    master   69m   v1.17.3   10.156.0.29   <none>        Ubuntu 18.04.4 LTS   5.0.0-1031-gcp   docker://19.3.7
k2     Ready    <none>   65m   v1.17.3   10.156.0.30   <none>        Ubuntu 18.04.4 LTS   5.0.0-1031-gcp   docker://19.3.7
k3     Ready    <none>   63m   v1.17.3   10.156.0.35   <none>        Ubuntu 18.04.4 LTS   5.0.0-1031-gcp   docker://19.3.7

Дополнительно вы можете $ kubectl describe node NAME_OF_THE_NODE, чтобы получить более подробную информацию о каждом из узлов.

Фланель

Существует официальная документация по устранению неполадок, связанных с фланелью: Github.com: фланелевое устранение неполадок

Сообщение, полученное от kubelet :

Предупреждение FailedCreatePodSandBox 34m kubelet, slave-узел Не удалось создать изолированную программную среду pod: rp c ошибка: code = Unknown des c = не удалось настроить контейнер изолированной программной среды "26cdaf3170806455a4731218d20c482b85e683 p532632532632532632632432632432432632432432432432432432432432432432432432432432432441 "label-demo": networkPlugin cni не удалось настроить модуль "label-demo_default" сеть: open /run/flannel/subnet.env: нет такого файла или каталога

Сообщает, что отсутствует файл subnet.env на узле, который должен был запланировать модуль sandbox.

Кроме того, проверьте, правильно ли работают фланелевые модули. Вы можете проверить это с помощью:

  • $ kubectl get pods -A
  • $ kubectl get pods -n kube-system

Кроме того, вы можете проверить журналы этих модулей, выполнив команду: $ kubectl logs NAME_OF_FLANNEL_CONTAINER

Kubelet

Вы можете проверить kubelet журналы (по системному адресу) с помощью:

  • $ systemctl status kubelet
  • $ journalctl -u kubelet

Воспроизведение

Мне удалось воспроизвести ошибку, с которой вы столкнулись, и это происходило, когда:

  • --pod-network-cidr=CIDR не использовалось с $ kubeadm init
  • Фланельный CNI был применен после $ kubeadm init без --pod-network-cidr

Дополнительные ссылки:

Существует статья, посвященная устранению неполадок в сети: Kubernetes.feisky.xyz: Сеть .

Пожалуйста, дайте мне знать, если у вас есть другие вопросы

...