SuperAPI AI 工具集

gateway-routing

编程与开发

查看项目

更新于 10-15 22:38

技能介绍

用途:为 homelab Kubernetes 平台配置 Gateway API 路由、TLS 证书与 WAF。平台使用 Kubernetes Gateway API,由 Istio 作为网关控制器,包含 internal(仅家庭网络可访问)和 external(互联网可访问,受 Coraza WAF 保护)两个网关,资源位于 istio-gateway 命名空间,其他命名空间的 HTTPRoute 通过 parentRefs 引用。

主要能力:选择网关(仅公网用 external,仅内部用 internal,两者兼需则创建两个 HTTPRoute);创建 HTTPRoute,指定 parentRefs、hostnames 与 backendRefs;配置简单后端、双网关等路由模式;TLS 通配符证书在网关层提供,新增子域只需创建 HTTPRoute;外部网关运行 Coraza WAF(OWASP CRS,Paranoia Level 1),规则内联于 coraza-wasm-plugin.yaml,可用 SecRuleRemoveById 禁用误报规则。

使用方式:创建 HTTPRoute 的 YAML,放入 kubernetes/platform/config/<subsystem>/ 或 kubernetes/clusters/<cluster>/config/<app>/,并加入对应 kustomization.yaml;在 kubernetes/platform/namespaces.yaml 设置 network-policy.homelab/profile。HTTP 到 HTTPS 重定向已由平台管理,无需新建。可用 scripts/validate-tls.sh [external|internal] 检查证书与签发者状态。测试 WAF 时因 Istio 按 SNI 匹配,需用 --resolve 指定网关 IP,例如:GATEWAY_IP=$(kubectl --context <cluster> get gateway external -n istio-gateway -o jsonpath='{.metadata.annotations.lbipam.cilium.io/ips}'),再执行 curl -kI --resolve "app.${external_domain}:443:${GATEWAY_IP}" "https://app.${external_domain}/"。

适用场景:homelab 平台服务与集群专属应用的路由暴露、TLS 证书管理、外部流量的 WAF 防护与攻击模式验证。

限制:WAF 采用 FAIL_OPEN,WASM 加载失败时流量不受过滤;WasmPlugin 不支持卷挂载,规则需内联;原始 IP 请求会被拒绝。更多网关选择表、ClusterIssuer 对比与 WAF 指标见 references/reference.md。