命名空间与隔离是什么
命名空间(Namespace)是 Kubernetes 里的管理边界:用它隔离环境与团队,把权限、配额、网络策略按边界收口,降低误操作与横向影响。四个隔离维度常用组合:RBAC 权限、ResourceQuota/LimitRange 资源配额、NetworkPolicy 网络策略、Secret 可见范围。粒度可以按环境(dev/test/prod)或按团队划分;强合规场景直接升级到独立云账号或订阅。注意命名空间是管理边界而不是强安全边界——内核与容器运行时是共享的,更高强度需要独立节点池或集群。
基本信息
| 隔离维度 | RBAC 权限、ResourceQuota/LimitRange、NetworkPolicy、密钥可见范围 |
|---|---|
| 粒度 | 按环境(dev/test/prod)或按团队/项目划分 |
| 账号级 | 强合规场景直接用独立云账号/订阅隔离 |
| 网络 | NetworkPolicy 默认拒绝、按需放行 |
典型使用场景
- 多团队共享集群:每团队一个命名空间,权限与配额各自收口。
- 环境分离:dev/test/prod 不同命名空间,甚至不同集群。
- 配额治理:先设 requests 与配额,防止单团队超额拖垮集群。
- 网络收敛:默认拒绝跨命名空间流量,按依赖关系逐个放行。
- 密钥范围:Secret 按命名空间隔离,缩小泄露影响面。
配额示例
配额示例
apiVersion: v1
kind: ResourceQuota
metadata:
name: team-quota
namespace: team-a
spec:
hard:
requests.cpu: "20"
requests.memory: 40Gi
pods: "100"
# 配合 LimitRange 设默认 requests/limits隔离维度读法
| 维度 | 机制 | 效果 |
|---|---|---|
| 权限 | RBAC 按命名空间授权 | 操作范围收口 |
| 资源 | ResourceQuota/LimitRange | 防抢占与超额 |
| 网络 | NetworkPolicy | 限制横向移动 |
| 密钥 | Secret 按命名空间可见 | 缩小泄露面 |
隔离强度与运维成本正相关:按数据敏感度与事故半径选择合适粒度,不是越细越好。
命名空间不是强安全边界:内核与运行时共享,配合 RBAC 与网络策略使用;更高强度用独立节点池或集群。
命名空间生命周期与资源绑定:删除命名空间会级联删除其中全部资源,生产命名空间的删除权限单独审批。