Kubernetes
controllerは、実際のクラスタの状態を期待されるクラスタの状態と一致するように駆動するループである。これは、ポッド群を管理することで行われる。コントローラの1つには、replication controller(レプリケーションコントローラー)がある。このコントローラーは、ポッドのレプリカ数をクラスタ全体で指定した数になるようにレプリケーションとスケーリングを操作する。また、管理しているノードに障害が発生した場合には、代替のポッドの生成の操作も実行する。Kubernetesシステムの一部である他のコントローラの1つには、DaemonSet Controller(デーモンセットコントローラー)がある。これは、1台のマシンでポッドが必ず1つのみ実行されるようにする。Job Controller(ジョブコントローラー)は、たとえばバッチジョブの一部として、ポッドをジョブが完了するまで実行させる。コントローラーが管理するポッド群は、コントローラーの定義の一部である、ラベルセレクターを利用して特定する。
Controller manager(コントローラーマネージャー)は、DaemonSet ControllerやReplication ControllerなどのKubernetesのコアとなるコントローラーを実行するプロセスである。コントローラーは、APIサーバーと通信することで、管理対象のリソース(ポッド、サービスエンドポイントなど)の作成、更新、削除を実行する。
Kubernetesはマイクロサービスをベースとしたアプリケーションの実装方法としてよく使用されている。というのも、Kubernetesとその周辺ツールによるエコシステムは、マイクロサービスアーキテクチャが重視している重要な概念に必要な機能のすべてを提供しているためである。これに関して詳しくは、マイクロサービスの項目を参照。