3
votes

kubelet.service: Processus principal sorti, code = sorti, statut = 255 / n / a

Je crée un cluster de test en suivant ces instructions: https://kubernetes.io/docs/getting-started-guides/fedora / fedora_manual_config / et

https://kubernetes.io/docs/getting-started -guides / fedora / flannel_multi_node_cluster / malheureusement, lorsque je vérifie mes nœuds, ce qui suit se produit:

~kubectl describe node

 Normal  Starting                 9s    kubelet, pccshost2.lan.proficom.de  Starting kubelet.
  Normal  NodeHasSufficientDisk    9s    kubelet, pccshost2.lan.proficom.de  Node pccshost2.lan.proficom.de status is now: NodeHasSufficientDisk
  Normal  NodeHasSufficientMemory  9s    kubelet, pccshost2.lan.proficom.de  Node pccshost2.lan.proficom.de status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    9s    kubelet, pccshost2.lan.proficom.de  Node pccshost2.lan.proficom.de status is now: NodeHasNoDiskPressure
  Normal  NodeHasSufficientPID     9s    kubelet, pccshost2.lan.proficom.de  Node pccshost2.lan.proficom.de status is now: NodeHasSufficientPID

pour autant que j'obtienne ce problème est lié au non fonctionnement de kubelet.service sur le nœud maître:

systemctl status kubelet.service

kubelet.service - Kubernetes Kubelet Server
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2019-03-06 10:38:30 CET; 32min ago
     Docs: https://github.com/GoogleCloudPlatform/kubernetes
  Process: 14057 ExecStart=/usr/bin/kubelet $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL $KUBELET_API_SERVER $KUBELET_ADDRESS $KUBELET_PORT $KUBELET_HOSTNAME $KUBE_ALLOW_PRIV $KU>
 Main PID: 14057 (code=exited, status=255)
      CPU: 271ms

Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Failed with result 'exit-code'.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Consumed 271ms CPU time
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Service RestartSec=100ms expired, scheduling restart.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Scheduled restart job, restart counter is at 5.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: Stopped Kubernetes Kubelet Server.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Consumed 271ms CPU time
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Start request repeated too quickly.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: kubelet.service: Failed with result 'exit-code'.
Mar 06 10:38:30 pccshost1.lan.proficom.de systemd[1]: Failed to start Kubernetes Kubelet Server.

kubectl get no
NAME                        STATUS     ROLES     AGE       VERSION
pccshost2.lan.proficom.de   NotReady   <none>    19h       v1.10.3
pccshost3.lan.proficom.de   NotReady   <none>    19h       v1.10.3

quelqu'un peut-il donner un conseil sur ce qui se passe ici et comment puis-je y remédier? Thx


0 commentaires

4 Réponses :


3
votes

a résolu le problème avec kubelet ajoutant --fail-swap-on = false " à KUBELET_ARGS = dans le fichier de configuration de Kubelet. Mais le problème avec les nœuds reste le même - statut NotReady


0 commentaires


0
votes

J'ai eu le même problème. Impossible de démarrer le service kubelet dans le nœud maître.

L'exécution de la commande ci-dessous a résolu mon problème:

$ sudo swapoff -a

$ sudo systemctl restart kubelet.service

$ systemctl status kubelet


0 commentaires

2
votes

Lorsque vous installez le cluster k8s en utilisant kubeadm et installez kubelet dans master (Ubuntu), il crée le fichier "10-kubeadm.conf" situé dans / etc /systemd/system/kubelet.service.d

contenu du squelette

ExecStart = / usr / bin / kubelet $ KUBELET_KUBECONFIG_ARGS $ KUBELET_CONFIG_ARGS $ KUBELET_KUBEADM_ARGS $ KUBELET_KUBEADM_ARGS $ KUBELET_p>

la valeur de la variable $ KUBELET_KUBECONFIG_ARGS est /etc/kubernetes/kubelet.conf qui contient le certificat signé par CA. Maintenant, vous devez vérifier la validité du certificat. Si le certificat a expiré, créez le certificat à l'aide de openssl et signez-le avec votre autorité de certification.

Étapes pour vérifier le certificat

  1. Copiez la valeur client-certificate-data .
  2. Décoder le certificat (echo -n "copied_certificate_value" | base64 --decode)
  3. Enregistrer la sortie dans un fichier (vi kubelet.crt)
  4. Vérifier la validité (openssl x509 -in kubelet.crt -text -noout)

Si la Vadility a expiré, créez un nouveau certificat

Remarque: il est toujours prudent de faire une sauvegarde avant de commencer à apporter des modifications cp -a / etc / kubernetes / / root /

Etapes pour générer un nouveau certificat

systemctl status kubelet
systemctl restart kubelet #restart kubelet

Encoder les fichiers de certificat

cat kubelet.crt | base64
cat kubelet.key | base64

Copiez le contenu encodé et mettez-le à jour dans /etc/kubernetes/kubelet.conf.

Maintenant, vérifiez l'état de kubelet sur le nœud maître

openssl genrsa -out kubelet.key 2048
openssl req -new -key kubelet.key -subj "/CN=kubelet" -out kubelet.csr
openssl x509 -req -in kubelet.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -out kubelet.crt -days 300


0 commentaires