Kubernetesの仕組み
マスター
API Server
Kubernetesのリソース情報を管理するためのフロントエンドのRESTAPI。
- 各コンポーネントからリソースの情報を受け取り、データストア(etcd)に格納。
- 他のコンポーネントはこのetcdの情報にAPI Serverを介してアクセス。
- GUIツールやコマンドでアクセス可能。
- アプリケーション内からAPIServerを呼び出すことも可能。
- 認証/認可の機能あり
Scheduler
Podをどのノードで動かすかを制御するバックエンドコンポーネント。
ノードに割り当てられていないPodに対して、Kubernetesクラスタの状態を確認し、空きスペースを持つノードを探してPodを実行されるスケジュールリングを行う。
Controller Manager
Kubernetesクラスタの状態を常に監視するバックエンドコンポーネント。
定義ファイルで指定したものと実際のノードやコンテナで動作している状態をまとめて管理。
データストア
Kubernetesのクラスタの構成を保持する分散KVS。
ノード
kubelet
ノードではkubeletというエージェントが動作している。
- Podの定義ファイルにしたがってDockerコンテナを実行したり、ストレージをマウントしたりする機能を持つ
- ノードのステータスを定期的に監視する機能をもちステータスが変わると、APIServerに通知