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

前提条件

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

    此处以选择default为例。

    重定向至HTTPS 打开重定向至HTTPS开关,表示用HTTP协议访问时会重定向到HTTPS协议。
    应用路由名称 自定义设置路由名称,在同一个命名空间下应用路由名称必须唯一。

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

    转发规则
    说明 在添加应用路由时,您需要了解以下几点:
    • 在同一个应用路由下,可以创建多个路由规则:
      • 相同域名和路径的组合,只能对应一个Service。
      • 同一个Service,可以对应多个域名和路径组合。
    • 在不同应用路由下,可以创建完全相同的路由规则。
    域名 指定访问域名。
    路径 指定访问路径,必须以正斜线(/)开头。
    应用 从下拉列表中选择当前K8s集群中的目标应用。
    服务名称 从下拉列表中选择当前应用的目标服务Service。
    服务端口 服务Service的服务端口。
    开启TLS 选中开启TLS,即代表允许外部HTTPS请求路由到内部Service的路由规则集合。

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

    创建完成后,新建的应用路由出现在应用路由列表。您可以对其进行查看详情、变更路由规则信息和删除应用路由,以及查看应用路由的监控详情。

结果验证

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