适用场景
多团队共用一个集群,核心是"隔离":资源不能互相抢占、网络不能乱窜、权限不能越界。四件事缺一件都会出问题。
配置步骤(网络策略隔离)
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: { name: default-deny, namespace: team-a }
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
关键参数与建议
- 命名空间:按团队/环境划分,禁止使用 default
- RBAC:按命名空间授权,禁止随意 cluster-admin
- 网络策略:默认拒绝跨命名空间,按需放通
- 资源配额:ResourceQuota + LimitRange,防止单团队吃满
- 审计与标签:资源必须有 owner 标签,便于计量与清理
容易踩的坑
- 未下默认拒绝,命名空间之间可随意访问
- 规则过严导致 DNS/监控不可达(需放通系统命名空间)
- 策略无版本管理,变更无人知
验证与巡检
kubectl get networkpolicy -A
- 巡检:默认拒绝存在、业务放通有记录、DNS 可达
小结
多租户的验收:模拟一个团队尝试越权(访问别的命名空间、抢资源、跨网访问),全部应被拒绝。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。