CLB Ingress 采用自研 Ingress Controller 结合负载均衡的方式,提供更强大的 Ingress 流量管理。本文主要描述通过控制台配置 CLB Ingress 的方法。
使用限制
- 请勿擅自在服务端更改通过创建 CLB Ingress 维护的 CLB 实例,或者其监听器、后端服务器组和转发规则,否则将造成 CLB 服务异常,须自行承担责任。
- 请勿修改监听器和后端服务器组的名称中带有
k8s_
前缀的内容。 - 若直接在服务端修改 CLB Ingress 指定或维护的资源配置,可能存在配置被覆盖的风险。
- 使用负载均衡(Cloud Load Balancer,CLB)产品,会产生云基础资源使用费用。详细信息,请参见 负载均衡产品计费。
操作步骤
登录 容器服务控制台。
单击左侧导航栏中的 集群。
在集群列表页面,单击需要配置路由规则的目标集群。
在集群管理页面的左侧导航栏中,选择 服务与路由 > 路由规则,单击 创建路由规则 ,创建路由规则。
- 基本配置
参数 | 说明 |
---|
名称 | 根据系统提示,配置路由规则的名称。在同一个命名空间下,名称必须唯一。 |
命名空间 | 选择路由规则所属的命名空间。建议选择您自定义的命名空间,或系统默认创建的 default 命名空间。命名空间相关介绍,请参见 命名空间概述。 |
注解 | 单击 添加注解,为路由规则添加注解并配置键值对。也可通过配置路由规则 YAML 文件中特定的注解内容,以实现更加丰富的七层负载均衡能力和更加多样的服务路由规则。详细说明,请参见 通过 Annotation 配置七层负载均衡。 |
- Ingress 配置
参数 | 说明 |
---|
ingress 类型 | Ingress Controller 的实现方式,根据负载均衡器种类的不同,容器服务提供三种 ingress 类型。本例中选择 负载均衡 CLB。 |
- 负载均衡器配置
参数 | 说明 |
---|
直通 Pod 模式 | 仅 VPC-CNI 容器网络模型集群中显示该参数。默认开启,开启后不再通过 NodePort 转发,直接关联 Pod 作为负载均衡器的后端,同时支持健康检查。 注意 CLB 负载均衡器允许的后端服务器数有限,需自行规划和保证。详细限制,请参见 CLB 约束限制。 |
负载均衡器 | 按需选择已有或自动创建一个负载均衡器。支持 公网访问 和 私网访问 两种访问模式。 - 使用已有:仅支持已有的且未被容器服务使用的 CLB 实例。使用已有 CLB 实例时不覆盖该实例已有的监听器规则。
非特殊情况建议选择全新创建的 CLB 实例。 - 自动创建:自动创建新的 CLB 实例。您需要配置以下参数,详细参数说明,请参见 创建负载均衡实例:
注意 - 请勿将该自动创建的 CLB 实例使用到其他 Ingress 或者 Service 资源中,避免资源残留。
- 通过容器服务创建的 CLB,支持多可用区能力。若当前地域的负载均衡器支持跨可用区容灾,将默认创建主备可用区负载均衡器实例,当主可用区故障时,访问流量切换至备可用区,从而保障业务正常运行。
|
监听器 | 监听器负责监听负载均衡器上的请求,并分发流量。您需要配置监听器的调度算法和健康检查: - 调度算法:指定监听器转发请求时需要遵循的规则。
- 加权轮询(WRR):基于权重值进行流量的分发,权重值越高的后端服务器,被轮询到的次数(概率)越高。
- 加权最小连接数(WLC):优先将流量分发给当前连接数与权重比值最小的后端。
- 源地址哈希(SH):基于源 IP 地址的一致性哈希,相同源地址的请求会调度到相同的后端服务器。
- 健康检查:按需选择是否启用健康检查。若启用健康检查,需要配置以下参数:
说明 CLB Ingress 类型路由规则的健康检查路径仅支持/ ,且不可配置。 - 健康检查方法:对监听器进行健康检查的请求方法,支持 GET 或 HEAD。默认采用 GET 方法。
- 使用 HEAD 方法,服务器仅返回 HEAD 头部信息,可以降低后端开销,但要求服务器支持 HEAD 方法。
- 使用 GET 方法,要求服务器支持 GET 方法。
- 正常状态码:如收到此处选中类型的响应码,则判定该服务器为正常状态。默认选中 2xx 和 3xx。
- 响应超时:等待健康检查响应的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查异常。
- 检测间隔:执行健康检查的时间间隔。默认间隔为 2 秒,表示每 2 秒对后端服务器进行一次健康检查。
- 健康阈值:判断后端服务器正常的健康检查次数。默认为 3 次,表示连续执行 3 次健康检查,结果均为“正常”的后端服务器则判定为健康检查正常。
- 不健康阈值:判断后端服务器异常的健康检查次数。默认为 3 次,表示连续执行 3 次健康检查,结果均为“异常”的后端服务器则判定为健康检查异常。
|
- 监听配置
参数 | 说明 |
---|
协议 | 监听器的协议。容器服务支持 HTTP 和 HTTPS 两种对外协议。
创建完成路由规则时,CLB 实例根据您的监听配置,自动创建监听器,名称默认为k8s_ <CLB Ingress 所在命名空间>_<CLB Ingress 路由规则名称>_<端口号> ,例如k8s_ default_demo-ingress_80 。 |
端口 | 指定负载均衡器对外的监听端口,即注册到负载均衡服务地址上的端口。范围为:1~65535。 - 协议 为 HTTP 时:默认端口为 80。
- 协议 为 HTTPS 时:默认端口为 443。
|
证书 | 监听器的对外 协议 选择 HTTPS 后,需要绑定服务器证书,以支持数据传输加密认证。您需要通过创建密钥,绑定服务器证书: 单击 创建密钥,根据如下说明配置密钥参数,然后单击 确定。 - 名称:根据系统提示的命名规则,设置密钥名称。同一个命名空间下名称须唯一。
- 命名空间:选择与本路由规则相同的命名空间。
- 服务器证书:选择 CLB 实例的服务器证书。若无可用证书,请参见 CLB 创建证书文档 创建。
- 标签:密钥标签,可定义密钥的不同属性,方便批量筛选等需求。
默认全部域名使用同一个密钥,CLB Ingress 不支持指定域名。 |
- 转发配置
参数 | 说明 |
---|
转发规则 | 请求的访问地址与转发规则匹配时,该请求会被转发到对应的 服务(Service)处理。单击 添加转发策略,可添加多条转发策略。 - 域名:请求的域名与此处设置的域名匹配时,请求会被转发到指定的服务。
- 路径:请求的路径与此处设置的路径匹配时,请求会被转发到指定的服务。
- 路径匹配规则:负载均衡 CLB Ingress 类型的路由规则,当前仅支持 前缀匹配。
前缀匹配:表示只要符合此前缀的路径均可访问。例如映射 URL 为/foo ,则/foo/v1 ,/foo/v2 都可以访问后端服务。 - 服务:请求被转发到的目标服务和端口。若无可用服务,请参考 服务 创建服务。
注意 - 当集群的容器网络模型为 Flannel 时,仅支持关联和选择 NodePort、LoadBalancer(非直通 Pod)类型的服务。
- 当集群的容器网络模型为 VPC-CNI 时:
- 若 Ingress 开启了 直通 Pod 模式,则支持关联和选择 NodePort、LoadBalancer(直通或非直通 Pod)、ClusterIP 类型的服务。
- 若 Ingress 未开启 直通 Pod 模式,则仅支持关联和选择 NodePort、LoadBalancer(直通或非直通 Pod)类型的服务。
|
单击 确认,完成配置。