1. 课程导论:多租户场景下的网络隔离挑战、NetPolicy 项目背景与价值、课程目标与学习路径

1.1 多租户场景下的网络隔离挑战

在 Kubernetes 多租户环境中,不同租户(团队、项目、客户)的工作负载共享同一集群资源。默认的扁平网络模型允许任意 Pod 之间直接通信,这带来了严重的安全风险。网络隔离的核心目标是确保租户之间的流量“非授权即拒绝”,同时保障合法业务链路的畅通。

以下是多租户网络隔离面临的主要挑战:

挑战维度 具体问题 典型后果
租户边界模糊 Namespace 仅提供逻辑隔离,无原生网络边界 租户 A 的 Pod 可直连租户 B 的数据库
策略规模爆炸 手工编写 NetworkPolicy 规则,租户数 > 10 时规则数呈指数增长 策略维护成本高,易出现配置遗漏或冲突
签名链路复杂性 微服务调用链跨多个 Namespace,需精确控制“谁-能-访问-谁” 调试困难,一次误配置可能导致全链路中断
审计与合规缺失 缺乏租户维度的流量签名与策略生效记录 无法通过等保/PCI-DSS 等合规审计
动态拓扑适配 Pod 频繁扩缩容,IP 地址动态变化 静态 IP 白名单策略失效,需频繁更新
⚠️ 常见误区: 很多团队认为“只要给每个租户分配独立 Namespace 就安全了”。实际上,Namespace 不提供任何网络隔离语义,Pod 仍可通过 ClusterIP 或 Pod IP 跨 Namespace 通信。必须显式声明 NetworkPolicy 才能实现真正的租户隔离。

1.2 NetPolicy 项目背景与价值

NetPolicy 是一个面向多租户 Kubernetes 集群的声明式网络策略编排引擎。它通过“租户签名”机制,将复杂的网络隔离需求抽象为可复用的策略模板,解决传统 NetworkPolicy 在规模化多租户场景下的痛点。

NetPolicy 的核心价值体现在以下四个方面:

  • 租户签名(Tenant Signature): 为每个租户生成唯一的数字签名标签,自动注入到该租户的所有 Pod 和 Namespace 中,作为策略匹配的原子标识。
  • 策略模板化: 预定义“全隔离”、“仅出站”、“签名链路”等策略模板,租户只需声明模板名称和参数,无需编写底层 YAML。
  • 链路签名验证: 在关键业务链路上强制校验源/目标租户签名,防止签名伪造或跨租户越权访问。
  • 审计与可视化: 自动生成租户维度的网络策略生效报告,支持与 SIEM 系统集成。
NetPolicy 核心架构与租户签名机制 NetPolicy 核心架构:租户签名驱动的策略编排 租户 A 声明 策略模板 + 参数 租户 B 声明 策略模板 + 参数 NetPolicy 签名引擎 • 生成租户签名标签 • 注入 Pod/Namespace • 解析策略模板 • 校验签名链路 策略生成与下发 • 生成 NetworkPolicy YAML • 签名标签自动匹配 • 调用 Kubernetes API • 下发至集群 审计与合规输出 策略生效报告 · 租户流量签名日志 · 合规审计证据

1.3 课程目标与学习路径

本课程旨在帮助学员从零掌握基于 NetPolicy 的多租户签名链路网络隔离实战技能。课程采用“理论 + 实验 + 项目”三阶段递进式设计。

课程目标

  • 理解核心概念: 掌握多租户网络隔离模型、租户签名、签名链路、策略模板等关键术语。
  • 独立部署 NetPolicy: 在 Kubernetes 集群中完成 NetPolicy 组件的安装、配置与验证。
  • 编写签名策略: 使用 NetPolicy CRD 定义租户签名、链路规则与隔离策略。
  • 排查与审计: 通过日志、事件和可视化工具诊断策略冲突与链路中断问题。
  • 完成实战项目: 独立设计并实现一个包含 3 个租户、5 条签名链路的完整隔离方案。

学习路径(30 章结构)

课程学习路径与章节阶段划分 课程学习路径:三阶段递进式设计 阶段一:基础与概念 第1-8章 • 多租户网络隔离理论 • NetPolicy 架构与部署 • 租户签名与策略模板 阶段二:实战与进阶 第9-22章 • 签名链路规则编写 • 跨 Namespace 策略编排 • 策略冲突排查与调试 阶段三:项目与综合 第23-30章 • 三租户隔离项目 • 签名链路全流程 • 审计与合规交付 每阶段末尾均设有实验验证章节,确保学以致用
💡 学习建议: 建议学员在开始本课程前,具备基本的 Kubernetes 操作经验(kubectl 常用命令、Pod/Service/Namespace 概念)。如果对 NetworkPolicy 原生资源不熟悉,建议先花 30 分钟阅读 Kubernetes 官方文档中的网络策略章节。

课程实验环境要求

组件 版本要求 说明
Kubernetes 集群 ≥ 1.21 支持 NetworkPolicy API(需 CNI 插件实现)
CNI 插件 Calico v3.20+ / Cilium 1.10+ 必须支持 NetworkPolicy 强制执行
kubectl ≥ 1.21 与集群版本匹配
Helm ≥ 3.0 用于部署 NetPolicy 组件
NetPolicy v1.0.0+ 本课程提供的实验版本