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