一、K8s如何进行合理化的资源划分?

1.1 以租户为单位

Day019-K8s集群资源合理化分配-图6

以租户为单位划分的实现方式如下:

  • Namespace 隔离:为每个租户(如租户 A/B/C)创建独立 Namespace,隔离资源与管理边界。
  • ResourceQuota 配额控制:在租户 Namespace 中设置资源配额,限制 CPU、内存、Pod 数量(如 512 个 Pod)、RS 数量(如 2048 个 RS),避免租户间资源抢占。
  • RBAC 权限控制:为租户分配独立权限,仅允许操作所属 Namespace 内的资源,保障租户资源独立性。

1.2 以环境为单位

Day019-K8s集群资源合理化分配-图7

以环境为单位划分的实现方式如下:

  • 环境级 Namespace 划分:按 dev/uat/prod 环境创建 Namespace,匹配不同环境的资源需求(如 prod 资源更充裕)。
  • 差异化资源配额
  • 为 prod 环境设置更高配额(如 512 个 Pod、2048 个 RS),满足生产负载
  • 为 dev/uat 环境设置较低配额(如 256 个 Pod、1024 个 RS),控制测试环境资源消耗
  • LimitRange 规范请求:在环境 Namespace 中定义 LimitRange,约束 Pod 的资源请求(如 CPU、内存最小值 / 最大值),确保资源使用规范。

1.3 以Namespace为单位

Day019-K8s集群资源合理化分配-图8

以Namespace为单位划分的实现方式如下:

  • 精细化配额管理:直接对每个 Namespace 应用 ResourceQuota,例如:
  • prod Namespace:允许 512 个 Pod、2048 个 RS;
  • dev/uat Namespace:限制 256 个 Pod、1024 个 RS。
  • 资源分层调度:结合节点标签(Node Label)与 Pod 的 nodeSelector/nodeAffinity,将不同 Namespace 的 Pod 调度到指定资源池(如高配节点给 prod,低配节点给 dev)。
  • 生命周期管理:通过 Namespace 级别的资源配额,自动限制资源创建,避免某一环境 / 业务过度占用集群资源,保障整体资源均衡。