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。
应用路由配置约束(适用于K8s集群)
不能修改EDAS创建的Ingress资源(含有以下标签:edas-domain: edas-admin
、edas-domain
)。
操作步骤
- 登录EDAS控制台,在左侧导航栏,单击 。
- 在应用路由(K8s Ingress)页面顶部菜单栏选择地域,在页面中选择目标微服务空间。
- 在应用路由(K8s Ingress)页面中单击创建Ingress。
- 在创建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对应的后端服务。