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?
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
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
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
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