web-dev-qa-db-fra.com

Kubernetes - Erreur lors du téléchargement du crisocket: expiration du délai d'attente de la condition

J'essaie de créer un modèle pour un cluster Kubernetes ayant 1 nœud maître et 2 nœuds de travail. J'ai installé tous les logiciels de pré-demande et j'ai exécuté l'init kubeadmn sur mon nœud maître. Mais lorsque j'essaie d'exécuter la jointure kubeadmn que j'obtiens en sortie de la commande init, j'obtiens une erreur.

[découverte] Tentative de connexion au serveur API "10.31.2.33:6443" [découverte] Création du client de découverte des informations de cluster, demandant des informations à " https://10.31.2.33:644 " [découverte] Demander à nouveau des informations à " https://10.31.2.33:644 " pour valider TLS par rapport à la clé publique épinglée [découverte] La signature et le contenu des informations de cluster sont valides et le certificat TLS valide par rapport aux racines épinglées, utilisera Serveur API "10.31.2.33:6443" [découverte] Connexion établie avec le serveur API "10.31.2.33:6443" [kubelet] Téléchargement de la configuration du kubelet à partir de la configuration "kubelet-config-1.12" ConfigMap dans l'espace de noms du système de kube [ kubelet] Écriture de la configuration du kubelet dans le fichier "/var/lib/kubelet/config.yaml" [kubelet] Écriture du fichier d'environnement du kubelet avec des drapeaux dans le fichier "/var/lib/kubelet/kubeadm-flags.env" [contrôle en amont] Activation du kubelet service [tlsbootstrap] En attendant que le kubelet effectue le bootstrap TLS ... [patchnode] Téléchargement des informations du socket CRI "/var/run/dockershim.s ock "à l'objet Node API" "comme une erreur d'annotation lors du téléchargement du crisocket: délai dépassé en attendant la condition

j'ai fait un swapoff -a avant d'exécuter cela sur le workdernode2

J'ai pu exécuter la jointure une fois, mais après cela, dans le cadre d'un script, j'ai exécuté la réinitialisation de kubeadmn suivie par init et join quelques fois où cela a commencé à apparaître.

Impossible de savoir quoi ou où je fais une erreur.

Mon intention principale est de mettre toutes les commandes sous forme d'un script Shell (sur masternode) afin qu'il puisse être exécuté sur un cluster pour créer un réseau.

7
sierralimaa

J'ai eu le même problème sur Ubuntu 16.04 AMD64, je l'ai résolu avec ces commandes:

swapoff -a    # will turn off the swap 
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X  # will reset iptables

Regardez également ce problème dans kubeadm GitHub échange de kubeadm sur le problème associé où les gens signalent toujours avoir le problème après avoir désactivé l'échange.

Vous pouvez également essayer d'ajouter - fail-swap-on = false flag dans le fichier/etc/default/kubelet, cela n'a pas aidé dans mon cas cependant.

Il semble avoir été corrigé dans la dernière version k8 car depuis la mise à niveau du cluster, je n'ai pas connu cela.

2
Alex

J'avais rencontré le problème suivant après le redémarrage du nœud:

[kubelet] Creating a ConfigMap "kubelet-config-1.13" in namespace kube-system with the configuration for the kubelets in the cluster
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "k8smaster" as an annotation
[kubelet-check] Initial timeout of 40s passed.
error execution phase upload-config/kubelet: Error writing Crisocket information for the control-plane node: timed out waiting for the condition

Étapes pour se débarrasser de ce problème:

  1. Vérifiez à nouveau le nom d'hôte, après le redémarrage, il peut avoir changé.

Sudo vi /etc/hostname Sudo vi /etc/hosts

  1. Effectuez les actions de nettoyage suivantes

Code:

Sudo kubeadm reset
rm -rf /var/lib/cni/
Sudo rm -rf /var/lib/cni/

systemctl daemon-reload

systemctl restart kubelet

Sudo iptables -F && Sudo iptables -t nat -F && Sudo iptables -t mangle -F && Sudo iptables -X
  1. Exécutez l'action init avec la balise spéciale comme ci-dessous

Code

Sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.10.10.2 --ignore-preflight-errors=all    

(où 10.10.10.2 est l'IP du nœud maître et 192.168.0.0/16 est le sous-réseau privé attribué aux pods)

1
Deb