Control plane
- kube-apiserver
- Kubernetes APIを提供しているコンポーネント
 
 - etcd
- クラスタの情報を保存するために使用されるキーバリューストア
 
 - kube-scheduler
- PodをどのNodeに割り当てるか決定するコンポーネント
 - 1クラスタ内に複数のスケジューラを動作させることができる
 
 - コントローラ
- クラスタの状態をAPIから監視し、現在の状態を目的の状態(desired state)に近づけるための操作を行うコンポーネント
- 制御ループ(control loop): システムの状態を制御する無限ループ
 
 - API経由でリソースを操作する場合と、コントローラが直接リソースを管理する場合がある。
 - kube-controller-manager: 複数のコントローラをまとめたビルドインのコントローラ
 
 - cloud-controller-manager
- クラスタが外部のクラウドAPIを使用するときに経由するコンポーネント
 
 
Node
- kubelet
- クラスタ内の各ノードで動作するdaemon
 - PodSpecを受け取り、それに記述されている通りにコンテナを動作させる。
 
 - kube-proxy
- Node間・Pod間の通信を制御するネットワークプロキシ
 - OSのパケットフィルタリングが利用可能な場合はそれを利用し、利用できない場合は自身でトラフィックを転送する
 
 - コンテナランタイム
 
(kindでの確認メモ)
- 1control-plane, 3worker, kindest/node:v1.23.0の構成
 - Control plane
- kindではそれぞれcontrol-plane NodeにPodとしてデプロイされている
- それぞれ
.metadata.ownerReferencesにはcontrol-plane Nodeが設定されている 
 kube-apiserver-${cluster}-control-planeetcd-${cluster}-control-planekube-scheduler-${cluster}-control-planekube-controller-manager-${cluster}-control-plane- cloud-controller-managerはなし
 
 - Node
- kubelet: systemdのserviceとしてdaemonとして動作
 - kube-proxy: DaemonSetとしてデプロイされている
 - コンテナランタイム: containerdが動作
 
 
参考