ワーカーノードにフォールトトレランスがないのはなぜですか?

ワーカーノードにフォールトトレランスがないのはなぜですか?

クラスタ管理者ノードは、次のクラスタ管理タスクを処理します。

1) クラスタの状態を維持

2) スケジューリングサービス

3) サービスクラスタモード HTTP API エンドポイント

すべての管理者ノードでdocker swarm- docker node - コマンドを実行できます。docker service

ここに画像の説明を入力してください。

アプリケーションはワーカーノードで実行されますが、フォールトトレランスはありません。ワーカーノードにフォールトトレランスがないためです。

これは、あるワーカーノードが失敗した場合、管理者が別のワーカーノードを起動することを意味します。

Swarmクラスタの設計により、開発者は状態非保存アプリケーションの設計ワーカーノードで実行します。


フォールトトレランスは、クラスタの状態を理解するために管理者レベルで維持されます。

管理対象ノードはフォールトトレラントですが、ワーカーノードがそうでないのはなぜですか?

ベストアンサー1

単一の管理対象ノードにフォールトトレランスはありません。結局、それは単なる機械(仮想または物理)です。これがステータスを共有する複数の管理者がいる理由です。ある管理者が失敗した場合、残りの管理者はクラスターを実行し続けます。

同様に、単一のワーカーノードにフォールトトレランスはありません。結局、それは単なるマシンです。それでは、ハードドライブにエラーが発生した場合はどうなりますか?これは、そのシステムのすべての状態が失われることを意味します。これが通常、クラスタ内のアプリケーションの複数のインスタンスを実行し、複製されたステートフルストア(デフォルトでは管理者ノードが実行するアクション)を使用するか、クラスタの外部で状態を維持する理由です。

また、これらの概念をさらに進化させる「12-Factor」アプリケーション設計について学びたいかもしれません。

おすすめ記事