Skip to content

マルチテナント

項目説明
メリット強力な分離、高い設定自由度
デメリット多数のクラスタ管理のための運用オーバーヘッド、リソース効率が低い
  1. 単一の巨大なKubernetesクラスタ 複数のテナントアプリケーションが単一のクラスタリソースを共有する。 NamespaceやvClusterなど論理的な分離を行う。 管理が容易で、リソース効率はいい。一方で、クラスタの障害が全テナントに影響する。
  2. 単一APIを持つ複数Kubernetesクラスタ カスタムコントローラーが実際のワークロードを複数の物理クラスタにスケジューリングする。 クラスタ単位で物理的な分離が可能で、クラスタを追加するだけでスケールアウトできる。一方で、可動部分が増えるため、システム全体が複雑になる。
  • コンピューティングリソースの分離
    • Namespace
    • Node Affinity
    • Resource Quotas
    • Limit Ranges
  • ユーザー権限の分離
    • Role
    • RoleBinding
    • ClusterRole
    • ClusterRoleBinding
  • ネットワークの分離
    • Network Policies
  • ランタイムの分離
    • Pod Security Admission

システムを安定させるための機能

Section titled “システムを安定させるための機能”
  • 優先度制御
    • PriorityClass
  • レートリミット
    • Token Bucket Filter (TBF) 少数の巨大アプリケーションと無数の小規模アプリケーションが混在する場合、巨大アプリケーションがリソースを独占しないようにする。 そのためには、NodeSelectorやTaints/Tolerationsを用いて、巨大アプリケーションと小規模アプリケーションを異なるノードにスケジューリングする。