9章DaemonSet
ReplicaSetは、冗長化のためにレプリカを複数作り、サービス(例えばWebサーバ)を作る方法です。しかし、クラスタ内でPodの複製を作る理由は、冗長化以外にもあります。クラスタ内の各ノードにPodを1つずつ割り当てるのもその一例です。各ノードにPodを割り当てる例としてよくあるのが、ある種のエージェントやデーモンを各ノードで動かしたいという場合です。これを実現するKubernetesオブジェクトが、DaemonSetです。
DaemonSetは、Kubernetesクラスタのノードの集まりで、Podのコピーが動くようにする機能です。DaemonSetは、ログコレクタや監視エージェントなど、それぞれのノードで動く必要のあるシステムデーモンをデプロイするのに使います。DaemonSetは、長期間動かすつもりのサービスのPodを作り、クラスタの望ましい状態と現在の状態を一致させる仕組みを提供するという点で、ReplicaSetと似たような機能を持っています。
DaemonSetとReplicaSetが似ていることを考えると、それぞれの使い分けが重要です。ReplicaSetは、ノードからアプリケーションを完全に分離して考え、どのノードでも複数のコピーを動かせる時に使います。DaemonSetは、クラスタ内のすべてあるいは一部のノードで、アプリケーションのコピーが1つだけ動くようにしたい時に使います。
ReplicaSetを使う際、ノードへの割り当てを制限したり、Podが同じノード上に配置されないようにパラメータを調整したりするのは、通常は推奨されません。各ノードに1つだけPodを配置したい時は、DaemonSetが正しい選択肢です。ユーザトラフィックを受け付けるために、同じサービスの複製を作りたい時は、ReplicaSetが正しい選択です。 ...
Get 入門 Kubernetes now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.