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文字かぶってるし)ちゃんと役割と合わせて覚えておくように。