Рабочий узел kubernetes в статусе "NotReady"
Я пытаюсь настроить свой первый кластер, используя Kubernetes 1.13.1. Мастер получил инициализацию в порядке, но оба моих рабочих узла NotReady
, kubectl describe node
показывает, что Kubelet прекратил публиковать состояние узлов на обоих рабочих узлах. На одном из рабочих узлов я получаю вывод журнала как
> kubelet[3680]: E0107 20:37:21.196128 3680 kubelet.go:2266] node
> "xyz" not found.
Вот полная информация:
Я использую Centos 7 & Kubernetes 1.13.1.
Инициализация была сделана следующим образом:
[root@master ~]# kubeadm init --apiserver-advertise-address=10.142.0.4 --pod-network-cidr=10.142.0.0/24
Успешно инициализирован кластер:
You can now join any number of machines by running the following on each node
as root:
`kubeadm join 10.142.0.4:6443 --token y0epoc.zan7yp35sow5rorw --discovery-token-ca-cert-hash sha256:f02d43311c2696e1a73e157bda583247b9faac4ffb368f737ee9345412c9dea4`
развернут фланелевой ЦНИ:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Команда соединения работала нормально.
[kubelet-start] Activating the kubelet service
[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "node01" as an annotation
Этот узел присоединился к кластеру:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the master to see this node join the cluster.
Результат kubectl получить узлы:
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 9h v1.13.1
node01 NotReady <none> 9h v1.13.1
node02 NotReady <none> 9h v1.13.1
на обоих узлах:
[root@node01 ~]# service kubelet status
Перенаправление в /bin/systemctl status kubelet.service
● kubelet.service - kubelet: агент узла Kubernetes
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Tue 2019-01-08 04:49:20 UTC; 32s ago
Docs: https://kubernetes.io/docs/
Main PID: 4224 (kubelet)
Memory: 31.3M
CGroup: /system.slice/kubelet.service
└─4224 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfi
`Jan 08 04:54:10 node01 kubelet[4224]: E0108 04:54:10.957115 4224 kubelet.go:2266] node "node01" not found`
Я ценю ваши советы по устранению неполадок.
1 ответ
Предыдущий ответ звучит правильно. Вы можете проверить это, запустив
kubectl describe node node01
на мастере или там, где правильно настроен kubectl.
Я столкнулся почти с той же проблемой и в конце концов обнаружил, что причина в том, что брандмауэр не был выключен. Вы можете попробовать следующие команды:
sudo ufw disable
или
systemctl disable firewalld
или
setenforce 0
Похоже, что причина этой ошибки в неправильной подсети. В документации Flannel написано, что вы должны использовать /16 not /24 для сети pod.
ПРИМЕЧАНИЕ. Если используется kubeadm, передайте --pod-network-cidr=10.244.0.0/16 в kubeadm init, чтобы убедиться, что podCIDR установлен.
Я попытался запустить kubeadm с / 24, и хотя у меня были узлы в состоянии готовности, фланелевые модули не работали должным образом, что привело к некоторым проблемам.
Вы можете проверить, правильно ли работают ваши фланелевые капсулы:kubectl get pods -n kube-system
если статус отличается от running
тогда это некорректное поведение. В этом случае вы можете проверить детали, запустив kubectl describe pod PODNAME -n kube-system
, Попробуйте изменить подсеть и сообщите нам, если это решило проблему.