web-dev-qa-db-fra.com

Comment déboguer lorsque les nœuds Kubernetes sont à l'état "Pas prêt"

J'ai initialisé le nœud maître et ajouté 2 nœuds de travail, mais seuls le maître et l'un des nœuds de travail s'affichent lorsque j'exécute la commande suivante:

kubectl get nodes

de plus, ces deux nœuds sont à l'état "Pas prêt". Quelles sont les étapes à suivre pour comprendre le problème?

  • Je peux cingler tous les nœuds de chacun des autres nœuds.
  • La version de Kubernetes est 1.8.
  • OS est Cent OS 7
  • J'ai utilisé le dépôt suivant pour installer 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
    
25
lex

Commencez par décrire les nœuds et voyez s’il signale quelque chose:

$ kubectl describe nodes

Recherchez les conditions, la capacité et l’allocation:

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

Si tout va bien ici, SSH dans le nœud et observez les journaux kubelet pour voir s’il signale quelque chose. Comme les erreurs de certificat, les erreurs d'authentification, etc.

Si kubelet est exécuté en tant que service systemd, vous pouvez utiliser

$ journalctl -u kubelet

45
Shahidh

J'ai trouvé que l'application du réseau et le redémarrage des deux nœuds ont été efficaces.

kubectl apply -f [podnetwork] .yaml

0
ReadyPlayer1

J'avais un problème similaire pour une raison différente:

Erreur:

cord@node1:~$ 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

cord@node1:~$ 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

cordon @ noeud3: ~ $ 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"

Problème:

Mon fichier: 10-calico.conflist était incorrect. Vérifié à partir d'un autre noeud et d'un exemple de fichier dans le même répertoire "calico.conflist.template".

Résolution:

La modification du fichier "10-calico.conflist" et le redémarrage du service à l'aide de "systemctl restart kubelet" ont résolu le problème suivant:

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
0
Syed Faraz Umar