Crownns в состоянии ожидания в кластере kubernetus

Я пытаюсь настроить кластер Kubernetes с 2 узлами. Сначала я пытаюсь настроить главный узел кластера на виртуальной машине CentOS. Я инициализировал кластер с помощью 'kubeadm init --apiserver-advertise-address=172.16.100.6 --pod-network-cidr=10.244.0.0/16' и развернул фланелевую сеть в кластере. Но когда я делаю 'kubectl получить узлы', я получаю следующий вывод ----

[root@kubernetus ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
kubernetus   NotReady   master   57m   v1.12.0

Ниже выводится "kubectl get pods --all-namespaces -o wide" ----

[root@kubernetus ~]# kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE   IP             NODE         NOMINATED NODE
kube-system   coredns-576cbf47c7-9x59x             0/1     Pending   0          58m   <none>         <none>       <none>
kube-system   coredns-576cbf47c7-l52wc             0/1     Pending   0          58m   <none>         <none>       <none>
kube-system   etcd-kubernetus                      1/1     Running   2          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-apiserver-kubernetus            1/1     Running   2          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-controller-manager-kubernetus   1/1     Running   1          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-proxy-hr557                     1/1     Running   1          58m   172.16.100.6   kubernetus   <none>
kube-system   kube-scheduler-kubernetus            1/1     Running   1          57m   172.16.100.6   kubernetus   <none>

Corens находится в состоянии ожидания в течение очень долгого времени. Я удалил docker и kubectl, kubeadm, kubelet a no раз и попытался воссоздать кластер, но каждый раз, когда он показывает один и тот же результат. Кто-нибудь может мне помочь с этим вопросом?

7 ответов

Попробуйте установить надстройку сети Pod (см. Это руководство).

Запустите эту строку:

kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

Невозможно обновить конфигурацию cni: сети не найдены в /etc/cni/net.d ..... 02.10 19:21:32 kubernetus kubelet[19007]: E1002 19:21:32.886170 19007 kubelet.go:2167] Контейнер сеть во время выполнения не готова: NetworkReady=false причина:NetworkPluginNotReady сообщение: docker: сетевой плагин не готов: cni config неинициализирован

В соответствии с этой ошибкой вы забыли инициализировать надстройку сети Kubernetes Pod. Глядя на ваши настройки, я полагаю, что это должен быть Фланель.

Вот инструкция из официальной документации Kubernetes:

Для правильной работы фланели необходимо пройти --pod-network-cidr=10.244.0.0/16 в kubeadm init.

Задавать /proc/sys/net/bridge/bridge-nf-call-iptables до 1, запустив sysctl net.bridge.bridge-nf-call-iptables=1 передавать мостовой трафик IPv4 в цепочки iptables. Это требование для работы некоторых плагинов CNI, дополнительную информацию см. Здесь.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

Обратите внимание, что фланель работает на amd64, arm, arm64 и ppc64le, но пока не будет выпущен фланель v0.11.0, вам нужно использовать следующий манифест, поддерживающий все архитектуры:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/c5d10c8/Documentation/kube-flannel.yml

Для получения дополнительной информации вы можете посетить эту ссылку.

Чтобы кластер Kubernetes был доступен, в кластере должен быть контейнерный сетевой интерфейс (CNI). Для того, чтобы модуль DNS работал, необходимо настроить сеть модулей.

Установите любой из поставщиков CNI, например: - Flannel - Calico - Canal - WeaveNet и т. Д.,

Без этого у размещенного кластера Kubernetes мастер будет в состоянии NotReady.

Для себя я перезапустил систему и заново применил calico.yaml, начали создаваться coredns и calico pods.

Я установил kubernetes с 1 основным + 1 рабочим узлом.
После того, как я сделал kubeadm init ..., я столкнулся с двумя проблемами:

  1. На главном узле ожидалось получение ядер.
  2. На рабочем узле команда kubectl не сработала

На рабочем узле я сделал следующее и исправил обе проблемы:

      mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config**

примите это решение как минимум с приоритетом и попробуйте изменить тип экземпляра (желательно более высокое ядро ​​/ оперативную память процессора). В моем случае я изменил экземпляр t3.micro linux на t2.medium, и он работает.

Проверьте, используют ли docker и kubernetes один и тот же драйвер cgroup. Я столкнулся с той же проблемой (CentOS 7, kubernetes v1.14.1), и установка того же драйвера cgroup (systemd) устранила ее.

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