<p>dockerランタイムを使用していない場合、kubeadmはbridge-nf-callとip_forwardについて文句を言います</p>

作成日 2018年08月16日  ·  10コメント  ·  ソース: kubernetes/kubeadm

これはバグレポートですか、それとも機能リクエストですか?

/種類のバグ

何が起こったのか

クリーンなシステムを起動した後、dockerが構成されていないCRIランタイムでkubeadm initを実行すると、次のエラーメッセージのペアが生成されます。

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1

あなたが起こると期待したこと

これらの2つの飛行前チェックは、自動的に満たされる可能性があるため、合格します。

明らかに、これらは通常dockerデーモンの開始によって自動的に処理されますが、openSUSE Kubicの場合、デフォルトでCRI-Oを使用して調査しています。この場合、そのようなものに干渉するための圧倒的なデーモンの贅沢はありません。 。

したがって、このバグレポートは、kubeadmがそれ自体を処理する機会でもあります。 kubeadmは必要なものを知っているので、問題について文句を言うのではなく、kubeadmが自動的にmodprobe br_netfilterecho '1' > /proc/sys/net/ipv4/ip_forward実行する必要がある場合があると思います。

あるいは、この提案が受け入れられない場合は、openSUSEKubicがkubeadmの一般的な期待に沿った方法でこれらの問題に自動的に対処する方法についての提案をいただければ幸いです。

それを再現する方法(可能な限り最小限かつ正確に)

  • kubeadmとcri-oをインストールします
  • systemctl enable --now crio
  • 追加の引数--container-runtime=remote --container-runtime-endpoint=unix:///var/run/crio/crio.sock --runtime-request-timeout=15m使用してkubletを実行するようにkubeadmを構成します
  • kubeadm init --cri-socket /var/run/crio/crio.sock実行します

他に知っておくべきことはありますか?

環境

  • Kubernetesバージョン( kubectl version ):v1.11.2
  • クラウドプロバイダーまたはハードウェア構成:qemu-kvm x86_64 16GB RAM2コア
  • OS(例:/ etc / os-releaseから):opensuse-tumbleweed-kubic
  • カーネル(例: uname -a ):4.17.13
  • ツールのインストール:kubeadm
help wanted kinbug

最も参考になるコメント

Dockerを再起動するとうまくいきました...ありがとう

全てのコメント10件

製品のバグではなく、ドキュメントのバグ(マニュアルがないだけ)のように感じます。 現在、コンテナランタイムとしてdockerを使用してkubeadmを使用してkubernetesをインストールする方法に関するページしかありませんが、cri-o用にもう1つ用意する必要があります。

IMO kubeadmは、少なくともmodprobe自体を実行する必要があります。 ip_forwardも同様であるかどうかは、システム構成であり、管理者次第であるため、議論の余地があります。

@ vrothberg-どう思いますか? 上記の2つの条件(modprobeとsysctl)はkubeadmによって自動的に修正される必要がありますか、それともこれはCRI-Oでより適切に処理されると思いますか?

Dockerは両方を自動的に実行します

そして、CRI-Oが適切に処理されるべきではないと思う場合、openSUSEでダーティハックをどこに実行する必要があると思いますか? cri-oパッケージまたはkubeadmパッケージにありますか? ;)

それはkubeadmパッケージがすべきことだと思います。 その後、私たちはすることができます
それが本当にエラーであるかどうか、または情報ログに降格できるかどうかを確認してください。
K8の多くのものは、Dockerの動作を中心に構築されていますが
それらは必ずしも必要ではありません。

現在休暇中ですが、随時メールをチェックします。 ありがとう
ping用。

2018年9月12日水曜日10:30、Richard [email protected]
書きました:

@vrothberg https://github.com/vrothberg-どう思いますか? する必要があります
上記の2つの条件(modprobeとsysctl)は、次の方法で自動的に修正されます。
kubeadm、またはこれはCRI-Oでより適切に処理されるものだと思いますか?

Dockerは両方を自動的に実行します

そして、あなたがCRI-Oが適切であると思うなら、あなたはどこにいると思いますか
ダーティハックはopenSUSEで実行する必要がありますか? cri-oパッケージまたは
kubeadmパッケージ? ;)


あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/kubernetes/kubeadm/issues/1062#issuecomment-420559942
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ALI4g1dRKf5vWXz_7H27VktuD8nP5tAsks5uaMYogaJpZM4V_W70

この問題は、openSUSEで次の変更を加えて処理されます: https ://build.opensuse.org/package/rdiff/devel:kubic / kubernetes?linkrev = base&rev = 9

アップストリームrpmパッケージで同様のものをすぐに提出する予定です

Dockerを再起動するとうまくいきました...ありがとう

次に、この情報をセットアップページに追加します。 私はこのエラーを見ていました、そしてそれは私がこのスレッドに出くわすまで私に少なくとも20分の痛みを引き起こしました。 ソリューションを共有していただきありがとうございます。

手順に従っていることを確認してください。そうすれば、エラーは発生しません。
https://kubernetes.io/docs/setup/production-environment/container-runtimes/#cri -o

単にmodprobeすることは、それらが実行されていることを保証しません。 再起動すると、すべてが壊れます。 これらが永続的に有効になっていることを確認するように指示する必要があります。 これはsysctlルールには当てはまりますが、モジュールには当てはまりません。

このようなものの指示に従うとき、私は物事を読んで、勘に基づいて余分なステップを踏むのが好きではありません。 それが私に何かをするように言うなら、私はそれをします。 そうでなければ私はしません。 私は物事が壊れるのを待って、戻ってそれらを修正します。 このようにして、物事が壊れたときに私が行ったランダムなことではなく、問題であるのが悪いドキュメントであるかどうかについて、私はより良い考えを持っています。

おそらく、ローカルのHyper-Vノードイメージを再構築する必要があります。

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