vcluster
別のクラスタのネームスペースの中で動く、完全なKubernetesクラスタ。テナントは自分専用のAPIサーバーを持ち、マシン全体を独り占めしていると思い込む。
Kubernetesのマルチテナンシーの悩みは、ネームスペースでは足りず、専用クラスタでは多すぎることだ。ネームスペースはAPIサーバーを共有するため、独自のCRDやwebhook、別バージョンが必要な人に、他の全員に影響する権限を与えることになる。専用クラスタならそれは解決するが、テナントごとにコントロールプレーンとノード群が要る。
仮想クラスタは、独自のデータストアを持つ軽量なAPIサーバーを、ネームスペース内の普通のPodとして置く。syncerがテナントの作ったPodを受け取り、対応する実際のPodをホストクラスタのネームスペースに作る。実際に動くのは共有ノード上だ。テナントは自分の世界で完全な管理者権限を持ちながら、ホストには触れない。境界になるのはノードレベルのもので、ネットワーク層、ストレージクラス、カーネルパラメータは依然としてホスト側のものだ。