用途:把 Kubernetes 里的 nginx Ingress 迁移到阿里云云原生 API 网关(APIG,基于 Envoy/Higress,使用 ingressClassName: apig)。全程离线分析用户提供的 YAML,不需要集群访问、CLI 或云凭证。
主要能力:一是解析 YAML,支持直接粘贴、文件路径、目录路径、多文档及缺少 apiVersion/kind 的部分 YAML;二是按 117 条注解对照表把每条 nginx.ingress.kubernetes.io/* 注解归为三类——兼容(保留)、可忽略(去除,Envoy 原生处理)、不支持(去除后按决策树解决);三是对不支持注解按四级决策树处理:Higress 原生注解、可安全丢弃、内置插件(通过 higress.io/wasmplugin 引用内置 OCI 镜像)、自定义 WasmPlugin(Go,基于 wasm-go SDK);四是生成迁移后的 Ingress YAML(名称加 -apig 后缀,ingressClassName 固定为 apig,保留原 rules、tls、namespace);五是输出兼容性分析表、迁移总结、后续操作指南与验证步骤。
典型映射示例:denylist-source-range 改为 higress.io/blacklist-source-range;limit-rps/limit-connections 用内置 key-rate-limit 插件;enable-modsecurity 用内置 waf 插件;auth-url、server-snippet、configuration-snippet 等需自定义 WasmPlugin;service-upstream 等可安全丢弃。部分兼容注解需改值,如 load-balance: ewma 改为 round_robin、ssl-ciphers 改名为 ssl-cipher、affinity-mode: persistent 改为 balanced。使用 WasmPlugin 需网关版本不低于 2.1.16。
使用方式:只需提供待迁移的 nginx Ingress YAML,未提供时会被要求先给出 YAML。工具(jq、python3+PyYAML 或 yq、Go、Docker)按需使用,不预先检查或提示安装,无需环境变量、无需认证、无需 RAM 权限。输出建议使用中文,代码块保持原语法;未指定参数使用 <REGION>、<YOUR_REGISTRY> 占位符。
限制:仅进行分析与文本生成,不会执行 kubectl apply、docker push 等集群或镜像仓库写操作,验证需用户自行运行 kubectl apply --dry-run=client 等命令;不调用任何云 API;具体内置插件目录、SDK 细节和完整注解表见其 references 下的说明文件。