Kubeadm: [AVERTISSEMENT FileExisting-crictl] : crictl introuvable dans le chemin système

Créé le 25 déc. 2017  ·  22Commentaires  ·  Source: kubernetes/kubeadm

version de kube : 1.9.0

Comment résoudre cette vérification pré-vol, que signifie cet avertissement ?

triaged

Commentaire le plus utile

Si kubeadm veut cet outil cli, il doit l'installer s'il n'est pas présent plutôt que d'avertir. Je soupçonne qu'une très faible minorité d'utilisateurs aura crictl pré-installé !!

Tous les 22 commentaires

C'est juste un avertissement, pas une erreur. Vous devriez pouvoir continuer sans problème.
Si vous souhaitez vous débarrasser de l'avertissement, installez simplement https://github.com/kubernetes-incubator/cri-tools/tree/master/cmd/crictl

Merci et bonne journée!

@luxas Merci beaucoup !

Je l'ai installé, à la fois via la méthode "go get" et en le plaçant directement dans mon PATH. L'avertissement est toujours à venir. Y a-t-il une raison pour laquelle il ne le trouverait pas ?

Je vais ajouter un fil d'Ariane à l'avertissement.

go get github.com/kubernetes-incubator/cri-tools/cmd/crictl résout

@chuckha

Si kubeadm veut cet outil cli, il doit l'installer s'il n'est pas présent plutôt que d'avertir. Je soupçonne qu'une très faible minorité d'utilisateurs aura crictl pré-installé !!

Expédions-nous crictl dans les packages officiels deb/rpm ?

@errordeveloper non , mais nous pourrions.

Pourquoi rien n'est mentionné à ce sujet dans https://kubernetes.io/docs/setup/independent/install-kubeadm ? ?

Devrait inclure quelque chose dans le sens de ce que j'avais à faire:
Installez ce truc pour que vous puissiez construire cet autre chose dont kubeadm a besoin :

miam installez allez

Mettez-le à jour car rien ne fonctionne jamais sans nécessiter plus de recherche sur Google, donc bien sûr la version installée est trop ancienne :

rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
vi /etc/yum.repos.d/go-repo.repo

Remplacez "$releasever" par "7" et "$basearch" par "x86_64", parce que, duh, ces vars n'existeront pas.

miam mise à jour golang

Construisez la chose :

allez sur github.com/kubernetes-incubator/cri-tools/cmd/crictl

Maintenant, essayez kubeadm init et traitez les autres erreurs non documentées.

de même sur Ubuntu 16.4 .. la suggestion utile d'utiliser "go get ..." était là, mais cela nécessitait un

sudo apt-get install golang-go

puis vous exécutez la commande go-get, puis il y a une erreur parce que GOPATH n'est pas défini, ce que j'ai corrigé, mais ensuite il s'est plaint parce que j'ai utilisé un chemin relatif, que j'ai corrigé, mais ensuite il s'est plaint parce que

contexte du package : chemin d'importation "contexte" non reconnu (le chemin d'importation ne commence pas par le nom d'hôte)

ce qui s'avère être parce que la dernière version de golang que vous pouvez installer en utilisant apt-get est 1.6, et le correctif de contexte est en 1.7 et au-dessus .. ce qui nécessite une purge complète et une réinstallation en utilisant les instructions conviviales ici . ce qui est bien même s'ils se sont trompés dans les paramètres de la variable d'environnement .. (soupir) .. alors je me rends compte que 1.7 est vraiment assez ancien, donc je reviens aux instructions officielles ici .. même si je suis toujours content d'avoir le wget instructions pour télécharger l'archive tar à partir du premier emplacement utile .. que j'ai modifié pour ceci

wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz

juste au cas où quelqu'un d'autre tomberait dessus...

Je sais que cela ressemble à un gémissement (parce que je le suis parce que je suis un peu ennuyé) .. mais j'ai pensé qu'il valait la peine de souligner que ce n'est pas aussi simple que d'ajouter une instruction à exécuter

allez sur github.com/kubernetes-incubator/cri-tools/cmd/crictl

et croyez que cela résoudra le problème facilement ... ce genre de choses ne devrait probablement pas être poussé aux utilisateurs finaux.

Fournissez ce que j'ai rencontré avec cet avertissement :

kubeadm version : &version.Info{Major :"1", Minor :"10", GitVersion :"v1.10.2", GitCommit :"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState :"clean", BuildDate :"2018-04-27T09:10 : 24Z", GoVersion :"go1.9.3", Compilateur :"gc", Plate-forme :"linux/amd64"}

  1. --ignore-preflight-errors ne peut pas atténuer cet avertissement, j'ai essayé différents formats :
    --ignore-preflight-errors="cri" ou --ignore-preflight-errors=cri ou
    --ignore-preflight-errors "cri" ou --ignore-preflight-errors cri

  2. installer le package ne peut pas non plus atténuer cet avertissement

    allez sur github.com/kubernetes-incubator/cri-tools/cmd/crictl

    va installer le binaire dans $HOME/go/bin, et je l'ai ajouté dans $PATH
    et j'ai installé le binaire à la fois en tant qu'utilisateur normal et root (il apparaît donc dans les deux répertoires personnels).
    kubeadm signale toujours un avertissement et ne le trouve pas.

@heyi-arm --ignore-preflight-errors convertira l' erreur en avertissement, mais les avertissements seront toujours affichés.

Je viens de sonner ici et je viens de rencontrer cela en essayant de mettre en place une configuration multi-maître à l'aide d'Ansible.

TASK [ansible-k8s : join_cluster | Joining Additional Nodes To K8s Cluster] ******************************************************************************************************
fatal: [node1]: FAILED! => {"changed": true, "cmd": ["kubeadm", "join", "--token", "8gsm4e.uv0bve5j7ec2i0qk", "--discovery-token-unsafe-skip-ca-verification", "--ignore-preflight-errors", "192.168.250.10:6443"], "delta": "0:00:00.176311", "end": "2018-05-10 19:57:28.117885", "msg": "non-zero return code", "rc": 2, "start": "2018-05-10 19:57:27.941574", "stderr": "\t[WARNING FileExisting-crictl]: crictl not found in system path\nSuggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl\n[preflight] Some fatal errors occurred:\n\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists\n[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`", "stderr_lines": ["\t[WARNING FileExisting-crictl]: crictl not found in system path", "Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl", "[preflight] Some fatal errors occurred:", "\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists", "[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`"], "stdout": "[preflight] Running pre-flight checks.", "stdout_lines": ["[preflight] Running pre-flight checks."]}
fatal: [node2]: FAILED! => {"changed": true, "cmd": ["kubeadm", "join", "--token", "8gsm4e.uv0bve5j7ec2i0qk", "--discovery-token-unsafe-skip-ca-verification", "--ignore-preflight-errors", "192.168.250.10:6443"], "delta": "0:00:00.183138", "end": "2018-05-10 19:57:28.171885", "msg": "non-zero return code", "rc": 2, "start": "2018-05-10 19:57:27.988747", "stderr": "\t[WARNING FileExisting-crictl]: crictl not found in system path\nSuggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl\n[preflight] Some fatal errors occurred:\n\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists\n[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`", "stderr_lines": ["\t[WARNING FileExisting-crictl]: crictl not found in system path", "Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl", "[preflight] Some fatal errors occurred:", "\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists", "[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`"], "stdout": "[preflight] Running pre-flight checks.", "stdout_lines": ["[preflight] Running pre-flight checks."]}

@mrlesmithjr vous avez un autre problème, sans rapport : [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists . Veuillez vérifier votre playbook ansible et ouvrir un nouveau problème avec des détails, si nécessaire.

C'est là que j'ai copié du maître le dossier PKI. J'essaie toujours de trier tout ça. Mais va certainement le faire.

C'est une excellente rétroaction. Je vais en parler dans sig-cluster-lifecycle. Cela devrait absolument être ignorable à tout le moins.

Et il devrait être .deb distribué si kubeadm en dépend. Si ce n'est pas le cas, il ne s'agit que d'un utilitaire facultatif - qui devrait toujours être emballé.

Si cela est nécessaire pour l'installation, il doit être livré avec les packages. Les outils de génération Go n'appartiennent pas aux hôtes de conteneur de production.

À mon avis, cela ne devrait pas être requis à moins que l'utilisateur ne souhaite utiliser CRI au lieu de docker. Cela peut être fait explicitement en introduisant une nouvelle option de ligne de commande (--use-cri ?) ou implicitement comme dans ce PR lorsque l'utilisateur spécifie le socket CRI en utilisant l'option --cri-socket.

@luxas pour moi, cela se présente comme une erreur. Est-ce un bogue ? Si oui, alors cela devrait être corrigé rapidement, car comme illustré ci-dessus, l'installation de crictl n'est pas si simple sur certaines configurations (et nécessite des outils de compilation sur l'hôte de production).

Je pense que cela devrait être corrigé par ce PR

Cette page vous a été utile?
0 / 5 - 0 notes