Kubeadm: [ПРЕДУПРЕЖДЕНИЕ FileExisting-crictl]: crictl не найден в системном пути

Созданный на 25 дек. 2017  ·  22Комментарии  ·  Источник: kubernetes/kubeadm

версия куба: 1.9.0

Как решить эту предполетную проверку, что означает это предупреждение?

Самый полезный комментарий

Если kubeadm хочет этот инструмент cli, он должен установить его, если он отсутствует, а не предупреждать. Я подозреваю, что у очень незначительного меньшинства пользователей будет предустановлен crictl!!

Все 22 Комментарий

Это просто предупреждение, а не ошибка. Вы должны быть в состоянии продолжить работу без него.
Если вы хотите избавиться от предупреждения, просто установите https://github.com/kubernetes-incubator/cri-tools/tree/master/cmd/crictl .

Спасибо и хорошего дня!

@luxas Большое спасибо!

Я установил его как с помощью метода «go get», так и поместив его непосредственно в свой PATH. Предупреждение все еще появляется. Есть ли какая-то причина, по которой он не найдет его?

Я добавлю хлебные крошки к предупреждению.

go get github.com/kubernetes-incubator/cri-tools/cmd/crictl решает

@chuckha

Если kubeadm хочет этот инструмент cli, он должен установить его, если он отсутствует, а не предупреждать. Я подозреваю, что у очень незначительного меньшинства пользователей будет предустановлен crictl!!

Поставляем ли мы crictl в официальных пакетах deb/rpm?

@errordeveloper Нет , но мы могли бы.

Почему об этом ничего не сказано в https://kubernetes.io/docs/setup/independent/install-kubeadm? ?

Должен включать что-то вроде того, что я должен был сделать:
Установите это, чтобы вы могли собрать еще одну вещь, которая нужна kubeadm:

ням установить идти

Обновите его, потому что ничего не работает без дополнительного поиска в Google, поэтому, конечно, установленная версия слишком старая:

rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | тройник /etc/yum.repos.d/go-repo.repo
vi /etc/yum.repos.d/go-repo.repo

Замените «$ releasever» на «7» и «$ basearch» на «x86_64», потому что этих переменных не будет.

ням обновить голанг

Постройте вещь:

зайдите на github.com/kubernetes-incubator/cri-tools/cmd/crictl

Теперь попробуйте kubeadm init и разберитесь с другими недокументированными ошибками.

то же самое в Ubuntu 16.4 .. было полезное предложение использовать «go get ...», но это требовало

sudo apt-get установить golang-go

затем вы запускаете команду go-get, а затем возникает ошибка, потому что GOPATH не установлен, что я исправил, но затем он жаловался, потому что я использовал относительный путь, который я исправил, но затем он жаловался, потому что

контекст пакета: нераспознанный путь импорта «контекст» (путь импорта не начинается с имени хоста)

Оказывается, это потому, что последняя версия golang, которую вы можете установить с помощью apt-get, — это 1.6, а исправление контекста — в 1.7 и выше.. что требует полной очистки и переустановки, используя дружественные инструкции здесь . что приятно, даже несмотря на то, что они ошиблись в настройках переменных окружения... (вздох)... потом я понимаю, что версия 1.7 действительно довольно древняя, поэтому я возвращаюсь к официальным инструкциям здесь ... хотя я все еще рад, что у меня есть wget инструкции по загрузке архива из первого полезного места .. которое я изменил на это

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

на всякий случай, если кто-нибудь еще наткнется на это...

Я знаю, это звучит так, как будто я ною (потому что это так, потому что я немного раздражен) ... но я подумал, что стоит указать, что это не так просто, как просто добавить инструкцию для запуска

зайдите на github.com/kubernetes-incubator/cri-tools/cmd/crictl

и верьте, что это легко решит проблему ... такие вещи, вероятно, не следует предлагать конечным пользователям.

Предоставьте то, что я встретил с этим предупреждением:

версия kubeadm: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10: 24Z", версия Go: "go1.9.3", компилятор: "gc", платформа: "linux/amd64"}

  1. --ignore-preflight-errors не может смягчить это предупреждение, я пробовал разные форматы:
    --ignore-preflight-errors="cri" или --ignore-preflight-errors=cri или
    --ignore-preflight-errors "cri" или --ignore-preflight-errors cri

  2. установить пакет также не может смягчить это предупреждение

    зайдите на github.com/kubernetes-incubator/cri-tools/cmd/crictl

    установит бинарный файл в $HOME/go/bin, и я добавил его в $PATH
    и я установил двоичный файл как от обычного пользователя, так и от root (поэтому он отображается в обоих домашних каталогах).
    все еще kubeadm сообщает о предупреждении и не может его найти.

@heyi-arm --ignore-preflight-errors преобразует ошибку в предупреждение, но предупреждения все равно будут отображаться.

Просто присоединяюсь к этому, поскольку я только что столкнулся с этим, пытаясь подготовить установку с несколькими мастерами с помощью 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 у вас есть еще одна проблема, не связанная с этим: [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists . Пожалуйста, проверьте свой ansible playbook и при необходимости откройте новый выпуск с подробностями.

Именно туда я скопировал с мастера папку PKI. Все еще пытаюсь во всем разобраться. Но обязательно сделает.

Это отличная обратная связь. Я расскажу об этом в sig-cluster-lifecycle. Это должно быть абсолютно проигнорировано, по крайней мере.

И он должен распространяться в формате .deb, если от него зависит kubeadm. Если нет, то это просто какая-то необязательная утилита, которую еще нужно запаковать.

Если это потребуется для установки, то его необходимо отправить вместе с пакетами. Инструменты сборки Go не принадлежат хостам рабочих контейнеров.

На мой взгляд, это не должно требоваться, если пользователь не хочет использовать CRI вместо докера. Это можно сделать либо явно, введя новый параметр командной строки (--use-cri ?), либо неявно, как в этом PR , когда пользователь указывает сокет CRI, используя параметр --cri-socket.

@luxas для меня это выглядит как ошибка. Это ошибка? Если да, то это должно быть быстро исправлено, потому что, как показано выше, установка crictl не так проста в некоторых конфигурациях (и требует инструментов сборки на рабочем хосте).

Я думаю, что это должно быть исправлено этим PR

Была ли эта страница полезной?
0 / 5 - 0 рейтинги