最近更新时间:2023.08.09 14:04:11
首次发布时间:2023.08.09 10:41:01
API 网关支持对接容器服务 VKE,为 VKE 集群中的服务提供对外暴露的方式。相比传统的 Nginx Ingress 网关,API 网关可同时对接多个 VKE 集群,作为跨集群的流量入口。并且,API 网关具有更丰富的流量治理能力、更好的扩展性、更强的安全性、更优异的性能。本文为您介绍如何对接 Ingress,将您的 Ingress 路由同步至 API 网关。从而实现无缝迁移,使用 API 网关作为集群的流量入口。
说明
【邀测·申请试用】同步 Ingress 路由为邀测功能,欢迎申请工单体验。
Ingress 资源与 API 网关资源的对应关系如下:
Ingress 资源 | API 网关资源 |
---|---|
host | 服务和自定义域名 |
backend | VKE 类型 Upstream |
rule | 路由 |
为了保证数据一致性,由 Ingress 同步的资源(即来源为 Ingress 的自定义域名、Upstream、路由),不支持在控制台操作。
Ingress host 与 path 的字符均不得超过 255,否则将同步失败。
Ingress host 不允许与网关控制台已有自定义域名相同。若 Ingress host 与网关已有自定义域名冲突,Ingress 将同步失败。
如果您的 Ingress 路由与控制台路由规则存在冲突,则请求会被转发至更早创建的那条路由。
登录 API 网关控制台。
在顶部导航栏,选择目标地域。
在左侧导航栏选择 后端管理 > 集群管理。
在集群列表中,选择待同步 Ingress 路由的集群,单击 操作 列的 编辑。
在导入集群页面,勾选 开启路由同步,并按要求配置以下信息。
注意
开启路由同步后,API 网关会自动监听 Ingress 资源的变化,并生效Ingress资源中的相关配置,将 Ingress 资源转义为服务、自定义域名、路由、Upstream 等资源合并至当前网关。
关闭路由同步后,API 网关会放弃监听 Ingress 资源,并删除由 Ingress 同步过来的自定义域名、路由、Upstream 资源,请谨慎操作!
配置项 | 说明 |
---|---|
指定 ingressClass | ingressClass 是 Ingress 处理器的描述,用于在 K8s 集群中声明一个 Ingress 处理器实现,关联该 IngressClass 的 Ingress 资源会被该 Ingress 处理器解析。
|
指定命名空间 | 监听指定命名空间下的 Ingress 资源。
|
流量入口切换 | 开启流量入口切换后,当前集群 Ingress 中 Status 的 IP 地址会被修改为当前网关的 IP 地址。 |
单击 确定,完成路由同步配置。
API 网关会自动监听 Ingress 资源的变化,并将 Ingress 资源转义为服务,域名,Upstream 等资源合并至当前网关。
说明
当前最大支持同步 1000 条 Ingress 路由,同步一条路由的时间大约为 1 秒钟。
Ingress 中的 host 将转译为 API 网关下的服务与自定义域名。
在左侧导航栏选择 路由管理 > 服务列表,在服务列表页面,命名为 Ingress 中 host 名称的服务,即为 Ingress 同步过来的服务。
单击服务名称,进入服务概览页面。单击 域名管理,切换至域名管理页签,查看 Ingress 同步过来的自定义域名。
Ingress 中的 rule 将转译为 API 网关对应服务下的路由。
${host}-${path}-${pathType}-${backend.service}
。Ingress 中的 backend 将转译为 API 网关下的 VKE 类型 Upstream。
对于 Ingress 同步过来的自定义域名,需要前往 DNS 服务商处 添加 CNAME 记录,将自定义域名指向 API 网关当前服务的默认域名。如果不添加 CNAME 记录,通过自定义域名发送的客户端请求,将无法正确解析至 API 网关。
对于 Ingress 同步过来的自定义域名,请检查是否完成 ICP 备案。若未完成 ICP 备案,外部流量将被封禁。