この段落から、Kubernetesクラスタのコントロールプレーンの主なコンポーネントを要約する。
Kubernetesは、CPU、メモリ、またはカスタムメトリクスに基づいてアプリケーションをデプロイ、保守、スケールするメカニズムを提供する一連のビルディングブロック（「プリミティブ」）を定義している。Kubernetesは疎結合で、さまざまなワークロードに対応できるよう拡張可能だ。Kubernetes上で実行される内部コンポーネントだけでなく、拡張機能やコンテナもKubernetes APIに依存している。Kubernetesプラットフォームは、リソースをオブジェクトとして定義することで、コンピュート・リソースとストレージ・リソースを制御する。

Kubernetesはプライマリ／レプリカアーキテクチャに従っている。Kubernetesのコンポーネントは、個々のノードを管理するものと、コントロールプレーンの一部であるものに分けられる。

コントロールプレーン
Kubernetesマスターノードは、クラスタのKubernetesコントロールプレーンを処理し、そのワークロードを管理し、システム全体の通信を指示する。Kubernetesコントロールプレーンはさまざまなコンポーネントで構成され、それぞれが独自のプロセスで、単一のマスターノード上でも、高可用性クラスタをサポートする複数のマスターノード上でも実行できます。Kubernetesコントロールプレーンのさまざまなコンポーネントは以下のとおり：

etcdは、CoreOSが開発した、永続的で軽量な分散型のキーバリューデータストアである。etcdは、CoreOSが開発した永続的で軽量な分散型のkey-valueデータストアであり、任意の時点におけるクラスタの全体的な状態を表すクラスタの設定データを確実に格納します。etcdは、ネットワークパーティションが発生した場合に、可用性よりも一貫性を優先します（CAP定理を参照）。一貫性はサービスを正しくスケジューリングして運用するために極めて重要である。
APIサーバーは、HTTP上のJSONを使用してKubernetes APIを提供し、Kubernetesの内部と外部の両方のインタフェースを提供する。APIサーバーはRESTリクエストを処理して検証し、etcd内のAPIオブジェクトの状態を更新することで、クライアントがワーカーノード間でワークロードとコンテナを構成できるようにする。APIサーバはetcdのウォッチAPIを使用してクラスタを監視し、重要な構成変更をロールアウトし、あるいはクラスタの状態が乖離した場合はデプロイヤが宣言した状態に戻す。例として、デプロイ者は特定の「ポッド」（後述）のインスタンスを3つ実行する必要があると指定することができる。デプロイメントコントローラは、（etcdの宣言と矛盾する）2つのインスタンスしか実行されていないことを発見した場合、そのポッドの追加インスタンスの作成をスケジュールします。
スケジューラは拡張可能なコンポーネントで、リソースの可用性に基づいて、スケジュールされていないポッド（スケジューラが管理する基本エンティティ）がどのノードで実行されるかを選択します。スケジューラは、利用可能なリソースを超えてワークロードがスケジューリングされないように、各ノードのリソース使用を追跡します。この目的のために、スケジューラは、リソース要件、リソースの可用性、およびサービス品質、アフィニティ対アンチアフィニティの要件、データの局所性など、ユーザーが提供するその他の制約やポリシー指示を知っていなければなりません。スケジューラの役割は、リソースの「供給」とワークロードの「需要」を一致させることである。
コントローラは、実際のクラスタ状態を望ましい状態に向けて推進する調整ループであり、APIサーバと通信して、管理するリソース（ポッドやサービスエンドポイントなど）を作成、更新、削除する。コントローラの一種にレプリケーションコントローラがあり、クラスタ全体で指定した数のポッドのコピーを実行してレプリケーションとスケーリングを処理します。また、基盤となるノードに障害が発生した場合、代替ポッドの作成も行います。Kubernetesのコアシステムの一部であるその他のコントローラには、すべてのマシン（またはマシンのサブセット）で正確に1つのPodを実行するためのDaemonSetコントローラや、（バッチジョブの一部としてなど）完了まで実行されるPodを実行するためのジョブコントローラがあります。コントローラの定義の一部であるラベルセレクタは、コントローラが管理するポッドのセットを指定します。
コントローラマネージャは、Kubernetesのコアコントローラのセットを管理するプロセスです。
kubernetesクラスタのコントロールプレーンは、1つ以上のマスターノードで実行される。コンポーネントは以下のとおり：
1. etcd - クラスタの設定データを含むキーバリューデータストア。
2.api-serverは、kubernetesクラスタの状態を提供および更新するサーバーです。etcdを監視し、クラスタの実際の状態をその望ましい状態と同期させておく。
3.スケジューラは、各ポッドが必要とするものとクラスタ内のノードがサポートできるものに基づいて、スケジュールされていないポッドがどのノードで実行されるべきかを選択するコンポーネントです。
4.コントローラマネージャは、クラスタを望ましい状態に同期させる複数のコントローラを管理します。