API 网关对接容器服务集群时,支持监听集群中的 Ingress 路由变动,并同步到路由表。本文介绍如何对接 Ingress,将您的 Ingress 路由同步至 API 网关。从而实现无缝迁移,使用 API 网关作为集群的流量入口。
Ingress 资源与 API 网关资源的对应关系如下:
Ingress 资源 | API 网关资源 |
---|---|
host | 服务和自定义域名 |
backend | VKE 类型 Upstream |
rule | 路由 |
登录 API 网关控制台。
在顶部导航栏,选择目标地域。
在左侧导航栏选择 后端管理 > 容器集群导入。
在集群列表中,选择待同步 Ingress 路由的集群,单击 操作 列的 编辑。
在导入集群页面,勾选 开启路由同步,并按要求配置以下信息。
注意
配置项 | 说明 |
---|---|
指定 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 备案,外部流量将被封禁。