EDAS的Ingress是用于将外部HTTP/HTTPS流量路由到内部Service的路由规则集合。您可以通过配置不同的应用路由(K8s Ingress),从而根据不同的路由转发规则访问集群内不同的Service。本文介绍在EDAS控制台如何配置应用路由和转发规则。

视频教程

前提条件

已添加服务Service。具体操作,请参见添加服务Service

背景信息

创建K8s集群时默认安装了Ingress Controller组件。K8s集群中的Ingress Controller用于解析Ingress的路由转发规则。Ingress Controller收到请求,匹配Ingress转发规则并转发到后端Service,Service转发到Pod,最终由Pod处理请求。

Service、Ingress与Ingress Controller有着以下关系:
  • Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。
  • Ingress是用于将外部HTTP/HTTPS流量路由到内部Service的路由规则集合。
  • Ingress Controller是一个反向代理程序,负责解析Ingress路由规则,根据规则将HTTP/HTTPS流量路由转发到对应的Service。
Service、Ingress与Ingress Controller关系导图

应用路由配置约束(适用于K8s集群)

不能修改EDAS创建的Ingress资源(含有以下标签:edas-domain: edas-adminedas-domain)。

操作步骤

  1. 登录EDAS控制台,在左侧导航栏,单击流量管理 > 应用路由 > Ingress路由
  2. 应用路由(K8s Ingress)页面顶部菜单栏选择地域,在页面中选择目标微服务空间
  3. 应用路由(K8s Ingress)页面中单击创建Ingress
  4. 创建Nginx Ingress面板中,设置规则相关参数,然后单击确定
    配置项描述
    类型选择Nginx Ingress
    K8s集群从下拉列表中选择目标K8s集群。
    K8s命名空间K8s命名空间通过将系统内部的对象分配到不同的命名空间中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
    • default:没有其他命名空间的对象的默认命名空间。
    • kube-system:系统创建的对象的命名空间。
    • kube-public:此命名空间是自动创建的,并且可供所有用户(包括未经过身份验证的用户)读取。

    此处以选择default为例。

    应用路由名称自定义设置路由名称,在同一个命名空间下应用路由名称必须唯一。

    支持小写字母、数字和短划线(-),且必须以字母开头,字母或数字结尾。

    重定向至HTTPS打开重定向至HTTPS开关,表示用HTTP协议访问时会重定向到HTTPS协议。
    转发规则
    说明 在添加应用路由时,您需要了解以下几点:
    • 在同一个应用路由下,可以创建多个路由规则:
      • 相同域名和路径的组合,只能对应一个Service。
      • 同一个Service,可以对应多个域名和路径组合。
    • 在不同应用路由下,可以创建完全相同的路由规则。
    域名指定访问域名。
    路径指定访问路径,必须以正斜线(/)开头。
    应用从下拉列表中选择当前K8s集群中的目标应用。
    服务名称从下拉列表中选择当前应用的目标服务Service。
    服务端口服务Service的服务端口。
    高级选项展开高级选项,您可设置采样率
    说明
    • 采样率:EDAS支持为匹配到Ingress路由规则的请求提供链路追踪能力,在Ingress监控页面的日志分析面板中可以查询到访问日志中注入的ARMS TraceId,并能够联动ARMS链路追踪进行请求异常分析。
    • 采样率表示ARMS链路追踪采样百分比,取值范围为0~100,默认为0,其中100表示每个请求都会被采集。
    • 配额说明:
      • EDAS标准版最多仅允许配置5条采样率大于10的路由规则。
      • EDAS专业版及铂金版没有采样率配额限制。
    开启TLS选中开启TLS,即代表允许外部HTTPS请求路由到内部Service的路由规则集合。

    如果允许外部HTTPS请求,还需要设置TLS证书。在Secret列表中选择TLS证书类型的保密字典,如果您还没有将HTTPS证书保存到保密字典,请单击新建密钥。创建保密字典的具体操作,请参见创建保密字典

    注解为Ingress添加注解键值对。
    • 自定义注解:为Ingress添加自定义的注解键值对。
    • Ingress-Nginx注解:选择社区版本Nginx Ingress支持的Annotations配置Ingress。
    标签为Ingress添加标签键值对。使用标签便于对已配置特定标签的Ingress进行分组管理。
    创建完成后,新建的应用路由出现在应用路由列表,您可以查看详情、变更路由规则信息、删除应用路由,以及查看应用路由的监控详情。

结果验证

您可在浏览器中访问路由规则中的域名/路径,查看能否访问到Service对应的后端服务。