Kubeadm: [警告FileExisting-crictl]:システムパスにcrictlが見つかりません

作成日 2017年12月25日  ·  22コメント  ·  ソース: kubernetes/kubeadm

久部バージョン:1.9.0

この飛行前チェックを解決する方法、この警告はどういう意味ですか?

triaged

最も参考になるコメント

kubeadmがこのCLIツールを必要とする場合、警告ではなく、存在しない場合はインストールする必要があります。 非常に少数のユーザーがcrictlをプリインストールしていると思います!!

全てのコメント22件

これは単なる警告であり、エラーではありません。 あなたはそれなしでうまく進むことができるはずです。
警告を取り除きたい場合は、 https://github.com/kubernetes-incubator/cri-tools/tree/master/cmd/crictlをインストールしてください。

ありがとう、そして良い一日を!

@luxasどうもありがとう!

「goget」メソッドと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が必要とするこの他のものを構築できるように、このgothingをインストールします。

yum install go

グーグルを追加しなければ機能しないため、更新してください。もちろん、インストールされているバージョンが古すぎます。

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

「$ releasever」を「7」に、「$ basearch」を「x86_64」に置き換えます。これらの変数は存在しないためです。

yum update golang

ものを構築する:

github.com/kubernetes-incubator/cri-tools/cmd/crictlを取得します

次に、kubeadm initを試して、文書化されていない他のエラーに対処します。

同様にUbuntu16.4でも..「goget ...」を使用するという有益な提案がありましたが、それには

sudo apt-get install golang-go

次に、go-getコマンドを実行すると、修正したGOPATHが設定されていないためにエラーが発生しますが、修正した相対パスを使用したためにエラーが発生しましたが、その後、次の理由でエラーが発生しました。

パッケージコンテキスト:認識されないインポートパス「コンテキスト」(インポートパスがホスト名で始まらない)

これは、apt-getを使用してインストールできるgolangの最新バージョンが1.6であり、コンテキスト修正が1.7以降であるためです。これには、ここにあるわかりやすい手順を使用して完全なパージと再インストールが必要です。 環境変数の設定が間違っていてもいいです..(ため息)..それから1.7は本当にかなり古いことに気付いたので、ここの公式の指示に戻ります..私はまだwgetを持っていることを嬉しく思います最初の役立つ場所からtarballをダウンロードするための手順..これに変更しました

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

他の誰かがこれにつまずいた場合に備えて...

私はこれが私が泣き言を言っているように聞こえることを知っています(私は少しイライラしているので)..しかし、実行するための命令を追加するほど単純ではないことを指摘する価値があると思いました

github.com/kubernetes-incubator/cri-tools/cmd/crictlを取得します

そしてそれが問題を簡単に解決すると信じています...この種のものはおそらくエンドユーザーにプッシュされるべきではありません。

この警告に遭遇したものを提供してください:

kubeadmバージョン:&version.Info {メジャー: "1"、マイナー: "10"、GitVersion: "v1.10.2"、GitCommit: "81753b10df112992bf51bbc2c2f85208aad78335"、GitTreeState: "clean"、BuildDate: "2018-04-27T09:10: 24Z "、GoVersion:" go1.9.3 "、コンパイラ:" gc "、プラットフォーム:" linux / amd64 "}

  1. --ignore-preflight-errorsはこの警告を軽減できません、私はさまざまな形式を試しました:
    --ignore-preflight-errors = "cri"または--ignore-preflight-errors = criまたは
    --ignore-preflight-errors "cri"または--ignore-preflight-errorscri

  2. パッケージをインストールしても、この警告を軽減することはできません

    github.com/kubernetes-incubator/cri-tools/cmd/crictlを取得します

    バイナリを$ HOME / go / binにインストールし、$ PATHに追加しました
    そして、バイナリを通常のユーザーとルートの両方としてインストールしました(したがって、両方のホームディレクトリに表示されます)。
    それでも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で取り上げます。 これは、少なくとも絶対に無視できるはずです。

また、kubeadmがそれに依存している場合は、.debを配布する必要があります。 そうでない場合、それは単なるオプションのユーティリティです-それはまだパッケージ化されるべきです。

これがインストールに必要な場合は、パッケージと一緒に出荷する必要があります。 Goビルドツールは本番コンテナホストに属していません。

私の意見では、ユーザーがdockerの代わりにCRIを使用したい場合を除いて、これは必要ありません。 これは、新しいコマンドラインオプション(--use-cri?)を導入することによって明示的に実行することも、ユーザーが--cri-socketオプションを使用してCRIソケットを指定するときにこのPRのように暗黙的に実行することもできます。

@luxas私にとって、これはエラーとして表示されます。 これはバグですか? はいの場合は、すぐに修正する必要があります。上記のように、一部の構成ではcrictlのインストールがそれほど簡単ではないためです(本番ホストでビルドツールを使用する必要があります)。

これはこのPRで修正する必要があると思います

このページは役に立ちましたか?
0 / 5 - 0 評価