cluster とは?多数のマシンが1つとして振る舞う
cluster とは、1つの compute プールとして振る舞うよう調整されたマシンの集合です - だからあなたは個々のサーバーではなく、cluster に対して deploy します。
clustering は、ラック内のマシン群を、単一の回復力あるシステムに変える発想です。どのサーバーがアプリを実行するかを気にする代わりに、作業を cluster に委ね、その作業の配置、スケーリング、回復を任せます。特に Kubernetes では、cluster は明確な2部構成を持ちます。
Kubernetes クラスタの2つの部分
control plane はグローバルな決定を下し、状態を(etcd に)保存します。そして一群の worker node が実際の workload を実行します。control plane が頭脳で、node が筋肉です。
そもそもなぜ clustering するのか
- 回復力 - 1台のマシンの故障がシステムを止めない。
- スケール - node を追加してキャパシティを透過的に増やす。
- 抽象化 - 名前付きのサーバーではなく、プールに対して deploy する。
cluster 全体にわたる望ましい状態
あなたは何を実行すべきかを宣言し、control plane がそれを node にスケジュールして継続的にリコンサイルします。node が現れては消える中で、cluster はあなたの宣言した workload を実行し続けます。
Kubernetes だけではない
clustering の概念は Kubernetes に先行し、それを超えて広がります - データベースクラスタ、compute クラスタ、CI runner フリートは、いずれも同じ「多数のマシン、1つの論理システム」という発想を適用します。
cluster と CI/CD
CD は cluster に対して deploy します。CI はしばしば、worker のクラスタのように振る舞う独自の runner マシンのフリート上で動きます。マネージド runner プラットフォームがそのフリートを運用し - プロビジョニング、スケーリング、修復し - あなたが CI キャパシティを1つの弾力的なプールとして扱えるようにします。
重要なポイント
- cluster は、多数のマシンを1つの compute プールとして振る舞わせます。
- Kubernetes クラスタは、control plane(頭脳)と worker node(筋肉)を組み合わせます。
- clustering は回復力、スケール、そしてプールに対して deploy する抽象化をもたらします。