version de kube : 1.9.0
Comment résoudre cette vérification pré-vol, que signifie cet avertissement ?
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"}
--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
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
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é !!