返回顶部
a

alibabacloud-nginx-ingress-to-api-gateway阿里云Nginx网关迁移

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.0.1
安全检测
已通过
118
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

alibabacloud-nginx-ingress-to-api-gateway

Nginx Ingress 迁移至 API 网关

场景描述

将 Kubernetes nginx Ingress 资源迁移至阿里云 API 网关(APIG)。APIG 是基于 Envoy 的网关(Higress),使用 ingressClassName: apig。本技能将每个 nginx.ingress.kubernetes.io/* 注解分类为兼容/可忽略/不支持三类,通过四级决策树(Higress 原生 → 安全丢弃 → 内置插件 → 自定义 WasmPlugin)处理不支持的注解,生成迁移后的 Ingress YAML,并输出一份可直接用于部署的迁移报告。

架构:nginx Ingress Controller → APIG (Envoy/Higress) + 可选 WasmPlugin (Go, proxy-wasm-go-sdk)

核心分析工作流完全在用户提供的 YAML 上离线运行——无需集群访问、CLI 工具或云凭证。

安装

本技能完全在用户提供的 YAML 上离线运行。无需 CLI 工具、SDK 或云凭证。

按需工具(仅当工作流到达需要它们的步骤时):

工具需要时检查命令最低版本
jq基于脚本的离线分析jq --version>= 1.6
python3 + PyYAML
YAML 解析(yq 的替代方案) | python3 -c import yaml; print(yaml.version) | python3 >= 3.8, PyYAML >= 5.0 |
| yq | YAML 解析(python3+PyYAML 的替代方案) | yq --version | >= 4.0 |
| Go | 步骤 3 确定需要自定义 WasmPlugin | go version | >= 1.24 |
| Docker | 自定义 WasmPlugin 需要构建为 OCI 镜像 | docker version | — |

分析期间请勿预检查或提示安装任何工具。

环境变量

无需环境变量。本技能不调用任何云 API 或 CLI 工具。

身份认证

不适用。本技能不调用阿里云 API 或 CLI。无需凭证。

RAM 策略

不适用。本技能完全在本地 YAML 文件上运行,不调用任何云 API。

参数确认

本技能仅执行分析和代码生成——不执行任何部署或集群写入操作。
当用户提供 Ingress YAML 时,立即执行完整工作流(步骤 1→5)并输出完整结果。请勿询问 RegionId、OCI 仓库或任何其他参数。在输出中使用 占位符。
请避免以下交互模式,直接执行对应操作即可:

  • - 是否需要我分析这个 Ingress? — 建议直接分析
  • 是否需要生成迁移后的 YAML? — 建议直接生成
  • 是否需要创建迁移配置文件/检查清单? — 建议直接创建
  • 是否需要开发 WasmPlugin? — 如果决策树判定需要,建议直接开发
  • 请确认 RegionId / OCI 地址 — 建议使用占位符

参数名称必需/可选描述默认值
Ingress YAML必需待迁移的 nginx Ingress YAML(粘贴、文件或目录)

当未提供 Ingress YAML 时:如果用户询问迁移但未提供 YAML,
请回复:请提供需要迁移的 nginx Ingress YAML(可以直接粘贴、提供文件路径或目录路径)。
请勿终止对话——引导用户提供所需输入。

核心工作流

建议:收到 YAML 后一次性完成全部分析步骤
当用户提供 Ingress YAML 时,建议立即执行全部步骤(Step 1→5)并在一次响应中输出完整结果。

  • - 对于未指定的参数(如 RegionId、OCI registry),使用 等占位符
  • 收到 YAML 后直接进入分析流程,无需额外确认
  • 各步骤之间连续执行,无需中途暂停询问用户
  • 迁移配置文件和检查清单作为标准输出的一部分自动生成
  • 整个工作流是确定性的:YAML 输入 → 完整迁移报告输出,无需中间确认
  • 唯一必需的输入是 Ingress YAML 本身

步骤 1:解析 Ingress YAML

接受以下任意输入格式的 YAML:

  • - 对话中直接粘贴(带或不带 markdown 代码围栏)
  • 文件路径(例如 ingress.yaml、./k8s/ingress.yaml)
  • 目录路径(扫描所有 .yaml/.yml 文件中的 Ingress 资源)
  • 多文档 YAML(由 --- 分隔)
  • 部分 YAML(缺少 apiVersion/kind——如果存在包含 nginx.ingress.kubernetes.io/* 的 annotations,则推断为 Ingress)

对于找到的每个 Ingress,提取所有 nginx.ingress.kubernetes.io/* 注解。

如果用户的消息提到迁移/分析但未包含任何 YAML,请回复:
请提供需要迁移的 nginx Ingress YAML(可以直接粘贴、提供文件路径或目录路径)。
请勿中止或报错——引导用户提供输入。

步骤 2:分类注解

将每个注解精确分类到三个类别之一。完整 117 个注解的查找表请参见 references/annotation-mapping.md。

类别数量操作示例
兼容50保留在迁移后的 YAML 中rewrite-target、enable-cors、canary-weight、ssl-redirect
可忽略
16 | 移除(Envoy 原生处理) | proxy-connect-timeout、proxy-buffering、proxy-body-size |
| 不支持 | 51 | 移除 → 通过决策树解决 | auth-url、server-snippet、limit-rps |

内联快速查询——高频注解:

注解类别操作
rewrite-target✅ 兼容保留
enable-cors
✅ 兼容 | 保留 |
| cors-allow-origin | ✅ 兼容 | 保留 |
| ssl-redirect | ✅ 兼容 | 保留 |
| canary / canary-weight / canary-by-header | ✅ 兼容 | 保留 |
| whitelist-source-range | ✅ 兼容 | 保留 |
| backend-protocol | ✅ 兼容 | 保留 |
| use-regex | ✅ 兼容 | 保留 |
| upstream-vhost | ✅ 兼容 | 保留 |
| proxy-connect-timeout | ⚪ 可忽略 | 移除 |
| proxy-read-timeout | ⚪ 可忽略 | 移除 |
| proxy-send-timeout | ⚪ 可忽略 | 移除 |
| proxy-body-size | ⚪ 可忽略 | 移除 |
| proxy-buffering | ⚪ 可忽略 | 移除 |
| client-body-buffer-size | ⚪ 可忽略 | 移除 |
| auth-url | ❌ 不支持 | WasmPlugin(HTTP 回调) |
| server-snippet | ❌ 不支持 | WasmPlugin(指令转换) |
| configuration-snippet | ❌ 不支持 | WasmPlugin(指令转换) |
| limit-rps | ❌ 不支持 | 内置 key-rate-limit 插件 |
| limit-connections | ❌ 不支持 | 内置 key-rate-limit 插件 |
| enable-modsecurity | ❌ 不支持 | 内置 waf 插件 |
| denylist-source-range | ❌ 不支持 | Higress 原生 higress.io/blacklist-source-range |
| service-upstream | ❌ 不支持 | 安全丢弃(Envoy 默认行为) |
| ssl-ciphers | ❌ 不支持 | 重命名为 ssl-cipher(兼容) |

如果某个注解不在上表中,请在 references/annotation-mapping.md 中查找。如果仍未找到,则分类为不支持并通过步骤 3 中的决策树解决。

特殊值变更(兼容但值必须变更):

  • - load-balance: ewma → round_robin(APIG 不支持 EWMA)
  • ssl-ciphers → 重命名为 ssl-cipher(单数形式)
  • affinity-mode: persistent → balanced(APIG

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 alibabacloud-nginx-ingress-to-api-gateway-1775915643 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 alibabacloud-nginx-ingress-to-api-gateway-1775915643 技能

通过命令行安装

skillhub install alibabacloud-nginx-ingress-to-api-gateway-1775915643

下载

⬇ 下载 alibabacloud-nginx-ingress-to-api-gateway v0.0.1(免费)

文件大小: 58.74 KB | 发布时间: 2026-4-12 08:52

v0.0.1 最新 2026-4-12 08:52
Initial release of Alibaba Cloud Nginx Ingress to API Gateway migration skill.

- Enables offline migration of Kubernetes nginx Ingress YAML to Alibaba Cloud API Gateway (APIG) format.
- Automatically classifies all `nginx.ingress.kubernetes.io/*` annotations as Compatible, Ignorable, or Unsupported, and resolves Unsupported annotations using a decision tree (Higress native, safe-to-drop, built-in plugin, or custom WasmPlugin).
- Generates migrated Ingress YAML and a full migration report with deployment guidance—no cluster/cloud access needed.
- Accepts input as pasted YAML, file, or directory (no cloud credentials or CLI required).
- Guides users to provide YAML if migration is requested without input.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部