Как отлаживать, когда узлы Kubernetes находятся в состоянии "Не готов"
Я инициализировал главный узел и добавил 2 рабочих узла, но только мастер и один из рабочих узлов появляются, когда я запускаю следующую команду:
kubectl get nodes
Кроме того, оба этих узла находятся в состоянии "Не готов". Какие шаги я должен предпринять, чтобы понять, в чем проблема?
- Я могу ping все узлы от каждого из других узлов.
- Версия Kubernetes - 1,8.
- ОС - Cent OS 7
-
Я использовал следующий репо для установки Kubernetes:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes] name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF
yum install kubelet kubeadm kubectl kubernetes-cni
Ответы
Ответ 1
Во-первых, опишите узлы и посмотрите, что-нибудь сообщает:
$ kubectl describe nodes
Ищите условия, емкость и распределение:
Conditions:
Type Status
---- ------
OutOfDisk False
MemoryPressure False
DiskPressure False
Ready True
Capacity:
cpu: 2
memory: 2052588Ki
pods: 110
Allocatable:
cpu: 2
memory: 1950188Ki
pods: 110
Если все в порядке, SSH в узле и наблюдайте kubelet
журналами kubelet
чтобы увидеть, сообщает ли он что-либо. Подобно сертификатам, ошибкам аутентификации и т.д.
Если kubelet
запущен как служба systemd, вы можете использовать
$ journalctl -u kubelet
Ответ 2
У меня была похожая проблема по другой причине:
Ошибка:
[email protected]:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready master 17h v1.13.5
node2 Ready <none> 17h v1.13.5
node3 NotReady <none> 9m48s v1.13.5
[email protected]:~$ kubectl describe node node3
Name: node3
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
Ready False Thu, 18 Apr 2019 01:15:46 -0400 Thu, 18 Apr 2019 01:03:48 -0400 KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Addresses:
InternalIP: 192.168.2.6
Hostname: node3
шнур @узел3: ~ $ journalctl -u kubelet
Apr 18 01:24:50 node3 kubelet[54132]: W0418 01:24:50.649047 54132 cni.go:149] Error loading CNI config list file /etc/cni/net.d/10-calico.conflist: error parsing configuration list: no 'plugins' key
Apr 18 01:24:50 node3 kubelet[54132]: W0418 01:24:50.649086 54132 cni.go:203] Unable to update cni config: No valid networks found in /etc/cni/net.d
Apr 18 01:24:50 node3 kubelet[54132]: E0418 01:24:50.649402 54132 kubelet.go:2192] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 18 01:24:55 node3 kubelet[54132]: W0418 01:24:55.650816 54132 cni.go:149] Error loading CNI config list file /etc/cni/net.d/10-calico.conflist: error parsing configuration list: no 'plugins' key
Apr 18 01:24:55 node3 kubelet[54132]: W0418 01:24:55.650845 54132 cni.go:203] Unable to update cni config: No valid networks found in /etc/cni/net.d
Apr 18 01:24:55 node3 kubelet[54132]: E0418 01:24:55.651056 54132 kubelet.go:2192] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 18 01:24:57 node3 kubelet[54132]: I0418 01:24:57.248519 54132 setters.go:72] Using node IP: "192.168.2.6"
Выпуск:
Мой файл: 10-calico.conflist был неверным. Проверено с другого узла и из образца файла в том же каталоге "calico.conflist.template".
Разрешение:
Изменение файла "10-calico.conflist" и перезапуск службы с помощью "systemctl restart kubelet" решило мою проблему:
NAME STATUS ROLES AGE VERSION
node1 Ready master 18h v1.13.5
node2 Ready <none> 18h v1.13.5
node3 Ready <none> 48m v1.13.5
Ответ 3
Я обнаружил, что применение сети и перезагрузка обоих узлов помогли мне.
kubectl apply -f [подсеть].yaml