Restart = 必要なサービスが失敗した後は、常に再起動を再試行しません。

Restart = 必要なサービスが失敗した後は、常に再起動を再試行しません。

kubelet.servicekubelet.serviceは次のとおりですdocker.service

[Unit]
Description=kubelet
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=-/etc/kubernetes/kubelet
ExecStart=/usr/local/bin/kubelet ...
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

再起動すると、docker.servicekubelet.serviceが自動的に再起動されます。ただし、サーバーの再起動時docker.serviceに起動に失敗すると、kubelet.serviceは自動的に再起動されません。

# journalctl -u kubelet.service 
-- Logs begin at Fri 2018-05-25 09:35:00 CST, end at Fri 2018-05-25 09:53:13 CST. --
May 25 09:35:03 debian systemd[1]: Dependency failed for kubelet.
May 25 09:35:03 debian systemd[1]: kubelet.service: Job kubelet.service/start failed with result 'dependency'.

# journalctl -u docker
-- Logs begin at Fri 2018-05-25 09:35:00 CST, end at Fri 2018-05-25 09:53:46 CST. --
May 25 09:35:03 debian systemd[1]: Starting Docker Application Container Engine...
May 25 09:35:03 debian dockerd[1905]: invalid value "" for flag --mtu: strconv.ParseInt: parsing "": invalid syntax
May 25 09:35:03 debian dockerd[1905]: See '/usr/bin/dockerd --help'.
May 25 09:35:03 debian systemd[1]: docker.service: Main process exited, code=exited, status=125/n/a
May 25 09:35:03 debian systemd[1]: Failed to start Docker Application Container Engine.
May 25 09:35:03 debian systemd[1]: docker.service: Unit entered failed state.
May 25 09:35:03 debian systemd[1]: docker.service: Failed with result 'exit-code'.
May 25 09:35:12 debian systemd[1]: docker.service: Service hold-off time over, scheduling restart.
May 25 09:35:12 debian systemd[1]: Stopped Docker Application Container Engine.
May 25 09:35:12 debian systemd[1]: Starting Docker Application Container Engine...

ご覧のとおり、kubeletは09:35:03に停止し、dockerが09:35:12に正常に起動した後も決して再起動されません.

答え1

再起動の試行回数が制限に達しました。レビューバースト制限開始。エマルジョンここ

答え2

Restart失敗した依存関係を参照するのではなく、そのデバイスに属するプロセスを参照します。

man systemd.service:

Restart =
サービスプロセスが終了、終了、またはタイムアウトしたときにサービスを再起動するかどうかを設定します。サービスプロセスはデフォルトのサービスプロセスである可能性がありますが、ExecStartPre =、ExecStartPost =、ExecStop =、ExecStopPost =、またはExecReload =で指定されたプロセスのいずれかです。システム操作(サービスの停止または再起動など)によってプロセスが終了した場合、サービスは再起動されません。タイムアウトには、欠落している監視デバイスの「接続の維持」の期限、サービスの開始、再ロード、およびジョブの停止のタイムアウトが含まれます。

関連情報