EDAS的Ingress是用于将外部HTTP/HTTPS流量路由到内部Service的路由规则集合。您可以通过配置不同的应用路由(K8s Ingress),从而根据不同的路由转发规则访问集群内不同的Service。本文介绍在EDAS控制台如何配置应用路由和转发规则。
背景信息
创建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。
应用路由配置约束(适用于K8s集群)
不能修改EDAS创建的Ingress资源(含有以下标签:edas-domain: edas-admin
、edas-domain
)。
操作步骤
- 登录EDAS控制台,在左侧导航栏,单击。
- 在应用路由(K8s Ingress)页面顶部菜单栏选择地域,在页面中选择目标微服务空间。
- 在应用路由(K8s Ingress)页面中单击创建Nginx Ingress。
- 在创建Nginx Ingress面板中,选择K8s集群、K8s命名空间并设置应用路由名称,单击添加转发规则并设置规则相关参数,然后单击确定。
参数 |
描述 |
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证书保存到保密字典,请单击新建密钥。创建保密字典的具体操作,请参见创建保密字典。
|
创建完成后,新建的应用路由出现在应用路由列表。您可以对其进行查看详情、变更路由规则信息和删除应用路由,以及查看应用路由的监控详情。
结果验证
您可在浏览器中访问路由规则中的域名/路径,查看能否访问到Service对应的后端服务。