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 ...
, я столкнулся с двумя проблемами:
- На главном узле ожидалось получение ядер.
- На рабочем узле команда 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) устранила ее.