一、K8s如何进行合理化的资源划分?¶
1.1 以租户为单位¶

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

以环境为单位划分的实现方式如下:
- 环境级 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为单位¶

以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 级别的资源配额,自动限制资源创建,避免某一环境 / 业务过度占用集群资源,保障整体资源均衡。