K8s 5分講座#07 コンポーネント
今日はコンポーネントについて学ぶ。

やっぱり「リンゴ」のが一番ですね!ただでさえ甘い果物をなんでシロップで煮ちゃうんだろう~と思ってたんですが、何でだと思います?

保存が利くからだろ。。って、それは「コンポート」だ…。今日やるのはコンポーネント!

んん??何ですかそれは…。聞いたことがあるような、無いような?

システムやアプリケーションを構成する独立した要素(部品)のことだ。K8sの場合は、クラスタの管理やアプリケーションのデプロイ、スケーリング、運用などを行うための要素を指す。

ということは、今日は新しいK8s単語が出てくるってことですね!楽しみですー。

6種類のコンポーネント
まずはAPIサーバ、これはK8sのフロントエンドとして機能する。

フロントエンド、ウェブアプリケーションやウェブサイトの「見える部分」ですね

管理デバイス、コマンドラインインターフェース(CLI)など、K8sクラスタとの対話は全てAPIサーバを経由する。

これはそのままだが、コンテナを実行するためのソフトウェアだ。

これまでの例では、”Docker”を例に挙げて説明されていましたね。

併せて説明したように、もちろんDocker以外の選択肢もある。

次はスケジューラ。これは複数のノードに作業やコンテナを分散させる役割を担う。

高可用性を考える場合、複数ノードに分散させる必要があるため、スケジューラの出番と言うわけですね。

その通り。スケジューラは新しく作成されたコンテナを探し、ノードに割り当てる。

etcdは、K8sがクラスタ管理に使用するすべてのデータを格納するために使用する分散型のキー・バリューストアだ。

キーバリューストア、データを「キー」と「バリュー」のペアで保存するシンプルなデータベースの一種ですよね?

そう、データの取得や保存が迅速なのが特徴だ。etcdは複数のノードに分散してデータを保存し、高可用性と耐障害性を提供する。

コントローラはオーケストレーションの頭脳だ。ノードやコンテナ、エンドポイントがダウンした時に、それに気づいて対応する役割を担う。

K8sクラスタ全体の監視をして、更に復旧オペレーションも行うんですね。

そうだ。ダウンを検出した場合、コントローラは新しいリソースを登場させる判断をする。

これが最後、クラスタ内の各ノードで動作するエージェントであるKubeletだ。コンテナが期待通りにノード上で実行されているかどうかを管理する。

コントローラと似ていますが、違いは何ですか?

コントローラはクラスター全体のリソースの状態を維持するための制御ロジックを担当、Kubeletはノード単位でポッドを管理するエージェントであり、両者は連携しながら、Kubernetesクラスターの運用を支えているんだ。

- コンポーネントは全部で6種類。APIサーバはフロントエンドでK8sクラスタとの対話を行う
- コンテナランタイムがコンテナを実行し、スケジューラはそれを各ノードに分散させる
- etcdキーストア、コントローラ、Kubeletが各役割を果たしてクラスタ全体の可用性を維持する
今回はなかなかボリュームありましたね!

そうだな。だがこの6つを押さえておけばコンポーネントはOKだ。

頭文字を繋げて、エコスエコクで覚えます!

それは思い出せなくなるやつでは…。。(4文字かぶってるし)ちゃんと役割と合わせて覚えておくように。

