SuperAPI AI 工具集

network-policy

部署与运维

查看项目

更新于 10-15 22:38

技能介绍

用途:在 homelab 环境中管理 Cilium 网络策略,覆盖配置档选择、访问标签、Hubble 调试、平台命名空间 CNP 与应急放行。

主要能力:按 profiles.md 选择配置档;在 kubernetes/platform/namespaces.yaml 中为命名空间打标签(如 network-policy.homelab/profile、access.network-policy.homelab/postgres 等),通过 Git 提交而非 kubectl apply;用 hubble observe --verdict DROPPED --namespace my-app --since 5m 检查丢包,或运行 scripts/hubble-debug.sh my-app 5m 执行结构化调试;用 kubectl get cnp、kubectl get ccnp、kubectl get namespace --show-labels 检查策略状态。

平台命名空间 CNP:需手工编写,放在 kubernetes/platform/config/network-policy/platform/,必须包含到 kube-system/kube-dns 的 DNS 出站(53 UDP/TCP)、来自 monitoring 的 Prometheus 抓取入站、来自 health 实体与 169.254.0.0/16 的健康探针入站,以及参与 Istio mesh 时的 HBONE(15008)规则;创建后加入 kustomization.yaml。

应急放行:仅在策略阻断合法流量时使用。先执行 kubectl label namespace <ns> network-policy.homelab/enforcement=disabled,会触发 5 分钟警告与 24 小时严重告警;再用 hubble observe 验证流量;随后定位根因、经 PR 修复策略,最后用 kubectl label namespace <ns> network-policy.homelab/enforcement- 恢复。

限制与反模式:不要创建显式 default-deny 策略;平台命名空间不要用配置档;不要硬编码 IP;不要允许任意端口;未按 runbook 不得关闭强制。完整流程见 docs/runbooks/network-policy-escape-hatch.md。