Kubeadm: [WARNUNG FileExisting-crictl]: Crictl nicht im Systempfad gefunden

Erstellt am 25. Dez. 2017  ·  22Kommentare  ·  Quelle: kubernetes/kubeadm

Kube-Version: 1.9.0

Wie löst man diesen Preflight-Check, was bedeutet diese Warnung?

triaged

Hilfreichster Kommentar

Wenn kubeadm dieses CLI-Tool haben möchte, sollte es es installieren, wenn es nicht vorhanden ist, anstatt zu warnen. Ich vermute, dass eine sehr geringe Minderheit von Benutzern crictl vorinstalliert haben wird!!

Alle 22 Kommentare

Es ist nur eine Warnung, kein Fehler. Sie sollten in der Lage sein, ohne sie gut fortzufahren.
Wenn Sie die Warnung loswerden möchten, installieren Sie einfach https://github.com/kubernetes-incubator/cri-tools/tree/master/cmd/crictl

Danke und haben Sie einen guten Tag!

@luxas Vielen Dank!

Ich habe es installiert, sowohl durch die "go get"-Methode als auch durch direktes Platzieren in meinem PATH. Die Warnung kommt immer noch. Gibt es einen Grund, warum es nicht gefunden wird?

Ich werde der Warnung einen Breadcrumb hinzufügen.

go get github.com/kubernetes-incubator/cri-tools/cmd/crictl wird aufgelöst

@chuckha

Wenn kubeadm dieses CLI-Tool haben möchte, sollte es es installieren, wenn es nicht vorhanden ist, anstatt zu warnen. Ich vermute, dass eine sehr geringe Minderheit von Benutzern crictl vorinstalliert haben wird!!

Versenden wir crictl in den offiziellen Deb/RPM-Paketen?

@errordeveloper nein, aber wir könnten.

Warum wird in https://kubernetes.io/docs/setup/independent/install-kubeadm nichts darüber erwähnt? ?

Sollte etwas in der Art beinhalten, was ich tun musste:
Installieren Sie dieses Go-Ding, damit Sie dieses andere Ding erstellen können, das kubeadm benötigt:

yum installieren gehen

Aktualisieren Sie es, da nichts funktioniert, ohne dass Sie mehr googeln müssen. Daher ist die installierte Version natürlich zu alt:

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

Ersetzen Sie "$releasever" durch "7" und "$basearch" durch "x86_64", weil diese Vars nicht existieren werden.

yum update golang

Bau das Ding:

Rufen Sie github.com/kubernetes-incubator/cri-tools/cmd/crictl auf

Probieren Sie jetzt kubeadm init aus und behandeln Sie die anderen undokumentierten Fehler.

ebenso auf Ubuntu 16.4 ... der hilfreiche Vorschlag, "go get ..." zu verwenden, war da, aber das erforderte eine

sudo apt-get install golang-go

dann führen Sie den Befehl go-get aus, und dann wird ein Fehler ausgegeben, weil GOPATH nicht festgelegt ist, was ich behoben habe, aber dann hat es sich beschwert, weil ich einen relativen Pfad verwendet habe, was ich behoben habe, aber dann hat es sich beschwert, weil

Paketkontext: Unbekannter Importpfad "Kontext" (Importpfad beginnt nicht mit Hostname)

Was sich herausstellt, liegt daran, dass die neueste Version von Golang, die Sie mit apt-get installieren können, 1.6 ist und der Kontext-Fix in 1.7 und höher ist. Dies erfordert eine vollständige Bereinigung und Neuinstallation mithilfe der freundlichen Anweisungen hier . was schön ist, obwohl sie die Einstellungen der Umgebungsvariablen falsch verstanden haben ... (seufz) ... dann wird mir klar, dass 1.7 wirklich ziemlich alt ist, also gehe ich zurück zu den offiziellen Anweisungen hier ... obwohl ich immer noch froh bin, dass ich das wget habe Anweisungen zum Herunterladen des Tarballs von der ersten hilfreichen Stelle .. die ich so geändert habe

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

nur falls noch jemand darüber stolpert...

Ich weiß, das hört sich an, als würde ich jammern (weil ich es bin, weil ich ein wenig genervt bin) .. aber ich dachte, es wäre erwähnenswert, dass es nicht so einfach ist, nur eine Anweisung zum Ausführen hinzuzufügen

Rufen Sie github.com/kubernetes-incubator/cri-tools/cmd/crictl auf

und glauben, dass es das Problem leicht lösen wird ... diese Art von Zeug sollte wahrscheinlich nicht an die Endbenutzer weitergegeben werden.

Geben Sie an, was ich mit dieser Warnung getroffen habe:

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", Compiler:"gc", Plattform:"linux/amd64"}

  1. --ignore-preflight-errors kann diese Warnung nicht entschärfen, ich habe verschiedene Formate ausprobiert:
    --ignore-preflight-errors="cri" oder --ignore-preflight-errors=cri oder
    --ignore-preflight-errors "cri" oder --ignore-preflight-errors cri

  2. Installation des Pakets kann diese Warnung auch nicht entschärfen

    Rufen Sie github.com/kubernetes-incubator/cri-tools/cmd/crictl auf

    installiert die Binärdatei in $HOME/go/bin, und ich habe sie in $PATH hinzugefügt
    und ich habe die Binärdatei sowohl als normaler Benutzer als auch als Root installiert (so dass sie in beiden Home-Verzeichnissen erscheint).
    immer noch meldet kubeadm eine Warnung und kann sie nicht finden.

@heyi-arm --ignore-preflight-errors wandelt den Fehler in eine Warnung um, aber Warnungen werden weiterhin angezeigt.

Ich möchte mich hier nur einklinken, und ich bin gerade darauf gestoßen, als ich versuchte, ein Multi-Master-Setup mit Ansible bereitzustellen.

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 Sie haben ein anderes Problem, das nichts damit zu tun hat: [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists . Bitte überprüfen Sie Ihr ansible Playbook und öffnen Sie bei Bedarf ein neues Problem mit Details.

Dorthin habe ich vom Master den PKI-Ordner kopiert. Ich versuche immer noch, das alles zu klären. Wird es aber definitiv tun.

Das ist ein tolles Feedback. Ich werde es im Sig-Cluster-Lebenszyklus aufführen. Dies sollte zumindest absolut ignorierbar sein.

Und es sollte eine .deb-Distribution sein, wenn kubeadm davon abhängt. Wenn nicht, dann ist es nur ein optionales Dienstprogramm - das sollte noch verpackt werden.

Wenn dies für die Installation erforderlich ist, muss es mit den Paketen versendet werden. Go-Build-Tools gehören nicht auf Produktions-Container-Hosts.

Meiner Meinung nach sollte dies nicht erforderlich sein, es sei denn, der Benutzer möchte CRI anstelle von Docker verwenden. Dies kann entweder explizit durch Einführen einer neuen Befehlszeilenoption (--use-cri ?) oder implizit wie in diesem PR erfolgen, wenn der Benutzer den CRI-Socket mit der Option --cri-socket angibt.

@luxas für mich stellt dies einen Fehler dar. Ist das ein Fehler? Wenn ja, sollte es schnell behoben werden, denn wie oben dargestellt, ist die Installation von crictl bei einigen Konfigurationen nicht so einfach (und erfordert Go-Build-Tools auf dem Produktionshost).

Ich denke, das sollte durch diese PR behoben werden

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen