システムの起動中にdocker.serviceがcni0.netdevブリッジを待機させる方法は?

システムの起動中にdocker.serviceがcni0.netdevブリッジを待機させる方法は?

Ubuntu 18.04.1 LTSを実行しています。

ローカルのKubernetesクラスタ/ノード用の仮想ブリッジを作成するためのファイルとcni0.netdevファイルを作成しました。cni0.network/etc/systemd/network

有効にしましたsystemd-networkd-wait-online.service

私は以下を持っていますdocker.service [Unit]

After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

ところでブートをすればまだ始まっていないというのにdockerdログインcni0をしてみるとブリッジがあります。再起動すると、dockerdブリッジを選択して使用します。

ファイルは独自の「ユニット」ではなく設定ファイルなので、After=forを追加することはできません。cni0.netdevnetdevsystemd-networkd

systemd-networkd-wait-online.service「すべての」インターフェイスがオンラインになるのを待っているように見えますが、これは一般的なeth0インターフェイスになります。

dockerdブリッジを開始する前に、ブリッジが動作して構成されるまでどのように待ちますか?

答え1

以下を追加してみてください。After/Wants=sys-devices-virtual-net-cni0.device

次のコマンドを使用すると、デバイスの正確な名前を解決できます。systemctl

関連情報