You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
Upstream 来源
集群路由同步
复制全文
下载 pdf
集群路由同步
API 网关对接容器服务(VKE)集群时,支持监听集群中的 Ingress 路由变动,并同步到路由表。本文介绍如何将 VKE 集群中的路由同步至 API 网关。实现无缝迁移,使用 API 网关作为集群的流量入口。​
背景信息​
集群中 Ingress 资源与 API 网关资源的对应关系如下:​
​
Ingress 资源​
API 网关资源​
host​
服务和自定义域名​
backend​
VKE 类型 Upstream​
rule​
路由​
​
​alt​​
前提条件​
  • 已创建 API 网关实例,具体操作可参见 创建实例。​
使用限制​
  • 为了保证数据一致性,由 Ingress 同步的资源(即来源为 Ingress 的自定义域名、Upstream、路由),不支持在控制台操作。​
  • Ingress host 与 path 的字符均不得超过 255,否则将同步失败。​
  • Ingress host 不允许与网关控制台已有自定义域名相同。若 Ingress host 与网关已有自定义域名冲突,Ingress 将同步失败。​
  • 如果您的 Ingress 路由与控制台路由规则存在冲突,则请求会被转发至更早创建的那条路由。​
操作步骤​
  1. 登录 API 网关控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在 实例管理 中选择目标实例后,单击 容器集群导入。​
  1. 在集群列表中,选择待同步 Ingress 路由的集群,单击 操作 列的 编辑。​
  1. 在导入集群页面,勾选 开启路由同步,并按要求配置以下信息。​
注意​
  • 开启路由同步后,API 网关会自动监听 Ingress 资源的变化,并生效Ingress资源中的相关配置,将 Ingress 资源转义为服务、自定义域名、路由、Upstream 等资源合并至当前网关。​
  • 关闭路由同步后,API 网关会放弃监听 Ingress 资源,并删除由 Ingress 同步过来的自定义域名、路由、Upstream 资源,请谨慎操作!​
  • ​alt​​
  • ​
    配置项​
    说明​
    指定 ingressClass​
    配置监听的 ingressClass 范围。指定后,API 网关将监听集群中的指定 Ingress 资源。​
    • 全部同步:监听集群中所有的 Ingress 资源。​
    • 自定义范围:监听指定 IngressClass 的 Ingress 资源。​
    说明​
    ingressClass 是集群中 Ingress 处理器的描述,用于在 Kubernetes 集群中声明一个 Ingress 处理器实现,关联该 IngressClass 的 Ingress 资源会被该 Ingress 处理器解析。​
    IngressClass​
    • 当 指定 ingressClass 配置为 自定义范围 时,需要指定监听的 IngressClass。例如指定监听的 ingressClass 为 nginx 时,表示监听并同步集群中的 Nginx Ingress。​
    • 支持指定多个 IngressClass。​
    • 监听 ingressClass 为空的资源。勾选后,未关联任何 ingressClass 的 ingress 资源也将被网关监听。​
    指定命名空间​
    监听指定命名空间下的 Ingress 资源。​
    • 全部同步:监听当前集群中所有命名空间下的 Ingress 资源。​
    • 自定义范围:监听指定命名空间下的 Ingress 资源,支持指定多个命名空间。​
    流量入口切换​
    开启流量入口切换后,集群 Ingress 的 IP 地址会被修改为当前网关的 IP 地址。即 API 网关充当了集群流量入口。​
    说明​
    配置路由同步后,您的 Ingress 网关和 API 网关将同时生效。如果您希望使用 API 网关作为集群的流量入口,请开启此开关,并前往您的域名解析商处,将您的域名解析至 API 网关的 IP 地址。​
    ​
  1. 单击 确定,完成配置。​
结果验证​
开启集群路由同步后,当您在集群中创建 Ingress 资源时,API 网关会自动监听 Ingress 资源的变化,并将 Ingress 资源转义为服务,域名,Upstream 等资源合并至当前网关。​
说明​
当前最大支持同步 1000 条 Ingress 路由,同步一条路由的时间大约为 1 秒钟。​
在集群中创建路由​
在集群中创建指定类型的路由,例如在本文中,创建 Nginx Ingress 路由,本文中的配置举例,如下图所示。​
​​​
查看同步路由信息​
集群中路由规则的 host 将转译为 API 网关下的服务与自定义域名。​
  1. 在左侧导航栏选择 路由管理 > 服务列表(域名),在服务列表页面,以 host 名称命名的服务,即从集群同步过来的服务。​
  1. 单击服务名称,进入服务概览页面。选择 域名管理 页签,查看 Ingress 同步过来的自定义域名。​
​​​
集群中路由规则的 rule 将转译为 API 网关对应服务下的路由。在左侧导航栏选择 路由管理 > 路由列表,在路由列表中即可查看来源类型为 Ingress 的路由。路由名称为 ${host}-${path}-${pathType}-${backend.service}。​
​​​
集群中路由规则的 backend 将转译为 API 网关下的 VKE 类型 Upstream。在左侧导航栏选择 后端管理 > Uptream 列表,在 Uptream 列表页面选择 Ingress 页签,即可查看 Ingress 同步过来的 Upstream。​
​​​
后续操作​
  1. 对于 Ingress 同步过来的自定义域名,需要前往 DNS 服务商处 添加 CNAME 记录,将自定义域名指向 API 网关当前服务的默认域名。如果不添加 CNAME 记录,通过自定义域名发送的客户端请求,将无法正确解析至 API 网关。​
  1. 对于 Ingress 同步过来的自定义域名,请检查是否完成 ICP 备案。若未完成 ICP 备案,外部流量将被封禁。​
​
最近更新时间:2025.11.18 11:46:32
这个页面对您有帮助吗?
有用
有用
无用
无用