Kubernetes のアーキテクチャ

Kubernetes のアーキテクチャと、Pod がノードで実行されるようにスケジュールされるときの流れをまとめました。

アーキテクチャ

Kubernetes のアーキテクチャは、下の図のとおりです。

Kubernetes クラスタは、コントロール・プレーンであるマスター・ノードと、Pod (コンテナが実行されるオブジェクト) が実行されるワーカー・ノードで構成されます。

Pod がスケジュールされるまでの流れ

Pod がワーカー・ノードで実行されるようにスケジュールされるまでの流れは、次に様になります。

(1) kubectl コマンドにより、マニフェストファイル (Pod の状態を定義したファイル) を適用すると、
その内容は、API server を介して etcd (Kubernetes クラスタの全情報が格納された、No SQLデータベース) に格納されます。

(2) scheduler は、定期的に API server を介して etcd の内容を確認しています。
どのノードにもスケジュールされていない Pod がある場合、その Pod をどのノードで実行するかを決定し、etcd に書き込みます。

(3) ワーカー・ノード上の kubelet は、定期的に API server を介して etcd の内容を参照し、自分自身のノード上で実行すべき Pod がないかを確認します。

(4) 上記の(3)の結果、ワーカー・ノードで実行すべき Pod がある場合、kubelet は Pod を作成します。

以上が、Kubernetes のアーキテクチャと、Pod がノードで実行されるようにスケジュールされるときの流れとなります。