适用场景

多团队共用一个集群,核心是"隔离":资源不能互相抢占、网络不能乱窜、权限不能越界。四件事缺一件都会出问题。

配置步骤(网络策略隔离)

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 可达

小结

多租户的验收:模拟一个团队尝试越权(访问别的命名空间、抢资源、跨网访问),全部应被拒绝。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。