8章ReplicaSet
ここまで、独立したコンテナをPodとして動かす方法を見てきましたが、これらのPodは実際には1回限りしか使えないものでした。しかし、次のような理由から、多くの場合は一度にコンテナのレプリカを複数動かしたいはずです。
- 冗長性
- インスタンスを複数動かすと、障害を許容できます。
- スケール
- インスタンスを複数動かすと、多くのリクエストを受け付けられます。
- シャーディング
- 異なるコンテナのレプリカを動かすと、異なる種類の処理を同時に受け付けられます。
もちろん、それぞれ違う(しかし大体同じの)Podマニフェストを使ってPodのコピーを手動で作るのも可能ですが、退屈ですし、間違いを起こしやすくなります。Podのレプリカを作るなら、そのレプリカ群は1つのまとまりとして考えて管理するのが普通でしょう。これこそが、ReplicaSetの考え方です。ReplicaSetは、指定したテンプレートに従った正しい数のPodが常に動いているようにする、クラスタ全体のPodマネージャです。
ReplicaSetを使うとPodのレプリカを作ったり管理したりするのが簡単になるので、アプリケーションのよくあるデプロイパターンを記述したり、インフラレベルでアプリケーションを自己回復させる基盤として使います。ReplicaSetで管理されたPodは、ノード障害やネットワーク分断などの障害時、自動的に他のノードに再割り当てされます。
ReplicaSetの仕組みを考えるのに分かりやすい例として、クッキーの型と、必要なクッキーの枚数が1つのAPIオブジェクトになったものを考えてみて下さい。ReplicaSetを定義する際には、作成したいPodの仕様(クッキー型)と、レプリカの数を決めます。さらに、ReplicaSetが制御するPodの見つけ方を決める必要があります。Podのレプリカを管理する仕組みは、調整ループ(reconciliation ...
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.