web-dev-qa-db-fra.com

Rejoindre un cluster prend une éternité

J'ai configuré mon nœud maître et j'essaie de rejoindre un nœud de travail comme suit:

kubeadm join 192.168.30.1:6443 --token 3czfua.os565d6l3ggpagw7 --discovery-token-ca-cert-hash sha256:3a94ce61080c71d319dbfe3ce69b555027bfe20f4dbe21a9779fd902421b1a63

Cependant, la commande se bloque pour toujours dans l'état suivant:

[preflight] Running pre-flight checks
    [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/

Comme il ne s'agit que d'un avertissement, pourquoi échoue-t-il réellement?

edit : J'ai remarqué ce qui suit dans mon /var/log/syslog

Mar 29 15:03:15 ubuntu-xenial kubelet[9626]: F0329 15:03:15.353432    9626 server.go:193] failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/lib/kubelet/config.yaml", error: open /var/lib/kubelet/config.yaml: no such file or directory
Mar 29 15:03:15 ubuntu-xenial systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a
Mar 29 15:03:15 ubuntu-xenial systemd[1]: kubelet.service: Unit entered failed state.
6
pkaramol

Le problème était dû au fait que kubeadm n'installe pas une solution réseau compatible CNI prête à l'emploi;

Par conséquent, sans cette étape, les nœuds kubernetes/maître ne peuvent établir aucune forme de communication;

La tâche suivante a résolu le problème:

- name: kubernetes.yml --> Install Flannel
  Shell: kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
  become: yes
  environment:
    KUBECONFIG: "/etc/kubernetes/admin.conf"
  when: inventory_hostname in (groups['masters'] | last)
1
pkaramol

J'ai eu la même erreur sur CentOS 7 mais dans mon cas, la commande join a fonctionné sans problème, il ne s'agissait donc que d'un avertissement.

>  [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker
> cgroup driver. The recommended driver is "systemd". Please follow the
> guide at https://kubernetes.io/docs/setup/cri/ [preflight] Reading
> configuration from the cluster... [preflight] FYI: You can look at
> this config file with 'kubectl -n kube-system get cm kubeadm-config
> -oyaml' [kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.14" ConfigMap in the kube-system namespace

Comme le mentionne la documentation officielle, il y a deux problèmes courants qui font que l'initialisation se bloque (je suppose que cela s'applique également à la commande join):

la configuration par défaut du pilote cgroup pour le kubelet diffère de celle utilisée par Docker. Vérifiez le fichier journal du système (par exemple/var/log/message) ou examinez la sortie de journalctl -u kubelet. Si vous voyez quelque chose comme ceci:

Essayez d'abord les étapes de documentation officielle et si cela ne fonctionne pas, veuillez fournir plus d'informations afin que nous puissions dépanner davantage si nécessaire.

0
aurelius

J'ai eu un tas de scripts de déploiement k8s qui ont récemment éclaté avec ce même message d'erreur ... il semble que docker a changé son installation. Essaye ça --

installation précédente: apt-get isntall docker-ce

installation mise à jour: apt-get install docker-ce docker-ce-cli containerd.io

0
Master Splinter