クラスタ管理者ノードは、次のクラスタ管理タスクを処理します。
1) クラスタの状態を維持
2) スケジューリングサービス
3) サービスクラスタモード HTTP API エンドポイント
すべての管理者ノードでdocker swarm
- docker node
- コマンドを実行できます。docker service
アプリケーションはワーカーノードで実行されますが、フォールトトレランスはありません。ワーカーノードにフォールトトレランスがないためです。
これは、あるワーカーノードが失敗した場合、管理者が別のワーカーノードを起動することを意味します。
Swarmクラスタの設計により、開発者は状態非保存アプリケーションの設計ワーカーノードで実行します。
フォールトトレランスは、クラスタの状態を理解するために管理者レベルで維持されます。
管理対象ノードはフォールトトレラントですが、ワーカーノードがそうでないのはなぜですか?
ベストアンサー1
単一の管理対象ノードにフォールトトレランスはありません。結局、それは単なる機械(仮想または物理)です。これがステータスを共有する複数の管理者がいる理由です。ある管理者が失敗した場合、残りの管理者はクラスターを実行し続けます。
同様に、単一のワーカーノードにフォールトトレランスはありません。結局、それは単なるマシンです。それでは、ハードドライブにエラーが発生した場合はどうなりますか?これは、そのシステムのすべての状態が失われることを意味します。これが通常、クラスタ内のアプリケーションの複数のインスタンスを実行し、複製されたステートフルストア(デフォルトでは管理者ノードが実行するアクション)を使用するか、クラスタの外部で状態を維持する理由です。
また、これらの概念をさらに進化させる「12-Factor」アプリケーション設計について学びたいかもしれません。