docker の原因と対処
docker(dockerd)のログに記録されるエラーから、原因と対処を調べます。「全構成共通」と「Swarmクラスタ構成固有」に分けて示します。
docker サービスのログ確認手順は ログの調査(採取手順) を参照してください。
全構成共通
docker デーモンが不安定
主なエラーメッセージ
http: superfluous response.WriteHeader call from go.opentelemetry.io/...
ログのサンプルエントリ
Oct 4 13:59:23 ke2-rhel89-swarm-1 dockerd[1512]: 2024/10/04 13:59:23 http: superfluous response.WriteHeader call from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*respWriterWrapper).WriteHeader (wrap.go:98)
原因
VM のリソース使用率が高い場合、さまざまなエラーが発生し、上記のようなログが頻繁に表示されることがあります。
解決策
リソース使用率が正常化すると、Docker で実行中のコンテナは通常自動的に回復します。問題が解決しない場合は以下を確認してください。
Swarmクラスタ構成固有
ネットワークの問題または特定ノードのインターフェイスのダウン
主なエラーメッセージ
memberlist: Failed to send UDP ping: ... network is unreachablebulk sync to node ... failed: ... network is unreachable
ログのサンプルエントリ
Sep 9 13:24:53 ke2-rhel89-swarm-3 dockerd[1441]: level=warning msg="memberlist: Failed to send UDP ping: write udp [::]:7946->10.20.47.12:7946: sendto: network is unreachable"
Sep 9 13:24:53 ke2-rhel89-swarm-3 dockerd[1441]: level=warning msg="bulk sync to node 26b516451957 failed: failed to send a TCP message during bulk sync: dial tcp 10.20.47.12:7946: connect: network is unreachable"
Sep 9 13:24:58 ke2-rhel89-swarm-3 dockerd[1441]: level=info msg="memberlist: Marking 26b516451957 as failed, suspect timeout reached (0 peer confirmations)"
解決策
ネットワークの問題が解決されると、Docker Swarm ノードは通常自動的に回復します。回復しない場合は
ネットワーク導通の確認
を実施してください。ノード間通信が正常に戻っても特定ノードで KE2 APP が正常に動作していない場合は、Docker
サービスを再起動してください(systemctl restart docker.service)。
外部データベースまたは Swarm ノードとの高いネットワーク遅延
主なエラーメッセージ
fatal task error" error="task: non-zero exit (1)NetworkDB stats ... healthscore:1 (connectivity issues)
ログのサンプルエントリ
Sep 11 18:32:17 ke2-rhel89-swarm-2 dockerd[785695]: level=warning msg="NetworkDB stats ke2-rhel89-swarm-2(a6a2e4038ef8) - healthscore:1 (connectivity issues)"
Sep 11 18:39:58 ke2-rhel89-swarm-2 dockerd[785695]: level=error msg="fatal task error" error="task: non-zero exit (1)" ...
解決策
ネットワークの問題が解決されると KE2 APP は自動的に回復します。回復しない場合は以下を確認してください。
- ネットワーク導通の確認
- KE2 APP ホストサーバと外部データベース間のネットワーク導通の確認
- 外部データベース間のネットワーク導通に問題があれば kengine が不安定の可能性があります。
docker ps -a -f name=kengineで kengine の状況を確認し、再起動を繰り返す場合は kengine コンテナを再起動(docker restart <CONTAINER_ID>)、戻らない場合はsystemctl restart docker.serviceを実行してください。
Docker 不安定性(node underweighting)
主なエラーメッセージ
underweighting node <NODE_ID> for service <SERVICE_ID> because it experienced 5 failures or rejections within 5m0sCould not parse VIP address while releasingFailed to allocate network resources for node ...
ログのサンプルエントリ
Sep 19 14:37:21 ke2-rhel89-swarm-1 dockerd[1064]: level=warning msg="underweighting node sw16fqkz94al7qwwqeksgtzeh for service m23oykzvchn3nc6n6cvsyebso because it experienced 5 failures or rejections within 5m0s"
Sep 19 14:37:21 ke2-rhel89-swarm-1 dockerd[1064]: level=error msg="error deallocating vip" error="invalid CIDR address: " ...
原因
あるノードが短期間に複数回の失敗やタスク拒否を経験したため、Docker Swarm のスケジューリングがこのノードの優先度を下げて他ノードにタスクを振り分けています。原因はノードの過負荷やネットワークの問題が考えられます。
解決策
- ホストサーバのリソース状況の確認
- ネットワーク導通の確認
- 特定ノードの Docker コンテナで利用のリソース状況の確認
- 特定ノードの KE2 APP が正常に戻らない場合、
systemctl restart docker.serviceを実行してください。
Swarm ノードダウン・VM ダウン・ネットワーク障害
主なエラーメッセージ
error sending message to peerrpc error: code = Unavailable ... no route to host
ログのサンプルエントリ
Sep 12 11:32:20 ke2-rhel89-swarm-1 dockerd[1428]: level=error msg="error sending message to peer" error="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial tcp 10.20.47.12:2377: connect: no route to host\""
解決策
Swarm ノードとの高いネットワーク遅延
主なエラーメッセージ
i/o timeoutBulk sync to node ... timed out
ログのサンプルエントリ
Sep 24 09:23:31 ke2-rhel89-swarm-1 dockerd[1491]: level=error msg="Bulk sync to node 464a64613c02 timed out"
Sep 24 09:23:31 ke2-rhel89-swarm-1 dockerd[1491]: level=warning msg="memberlist: Failed fallback TCP ping: timeout 1s: read tcp 10.20.47.11:32850->10.20.47.13:7946: i/o timeout"
解決策
ネットワーク導通の確認 を確認してください。
Gluster ボリュームが正しくマウントされていない
主なエラーメッセージ
invalid mount config for type "bind": bind source path does not exist: /mnt/gluster/var
ログのサンプルエントリ
Sep 25 13:23:45 ke2-rhel89-swarm-1 dockerd[1444]: level=error msg="fatal task error" error="invalid mount config for type \"bind\": bind source path does not exist: /mnt/gluster/var" ...
解決策
共有ファイルシステム(glusterfs)の正常性確認 を確認してください。
error while reading from stream
主なエラーメッセージ
error while reading from stream" error="rpc error: code = Canceled desc = context canceled
ログのサンプルエントリ
Sep 2 08:47:39 ke2-rhel89-swarm-1 dockerd[752072]: level=error msg="error while reading from stream" error="rpc error: code = Canceled desc = context canceled"
原因
特定ノードのリソース使用率が高い場合に発生することがあります。
解決策
リソース使用率が正常化すると Docker で実行中のコンテナは通常自動的に回復します。回復しない場合は ホストサーバのリソース状況の確認 を確認してください。