容器服务支持创建负载均衡模式(LoadBalancer)的服务。本文为您介绍如何通过控制台创建负载均衡服务。
使用限制
- 推荐在 VKE 控制台上直接配置 CLB 的参数,控制台上未包含的配置,支持通过 Annotation 修改。当修改 Annotation 时,建议通过 编辑 Yaml 方式进行操作。
- 仅在 VPC-CNI 网络模型场景下,支持直通 Pod 模式,把 Pod 对应的辅助网卡 ENI 直接关联到 CLB 的后端。
说明
直通 Pod 模式场景,CLB 允许的后端服务器数有限,需自行规划和保证。详细限制,请参见 CLB 约束限制。
前提条件
已创建无状态或有状态工作负载。详细操作,请参见 创建无状态负载、创建有状态负载。
操作步骤
- 登录 容器服务控制台。
- 单击左侧导航栏中的 集群。
- 在集群列表页面,单击需要配置的目标集群。
- 在集群管理页面的左侧导航栏中,选择 服务与路由 > 服务,单击 创建服务,配置服务。
- 基本信息
配置项 | 说明 |
---|
名称 | 根据系统提示,配置服务的名称。在同一个命名空间下,名称必须唯一。 |
命名空间 | 选择服务所属的命名空间。建议选择您自定义的命名空间,或系统默认创建的 default 命名空间。命名空间相关介绍,请参见 命名空间概述。 |
标签 | 单击 添加标签 图标,配置服务的标签。标签能够为服务定义不同的属性,方便批量筛选等需求。 |
注解 | 单击 添加注解,为服务添加注解并配置键值对。也可通过配置路由规则 YAML 文件中特定的注解内容,以实现更加丰富的四层负载均衡能力。详细说明,请参见 使用 Annotation 配置负载均衡服务。 |
- 访问配置
配置项 | 说明 |
---|
访问类型 | 配置服务的访问类型,本例中选择:负载均衡(LoadBalancer)。 |
通信协议 | 【邀测·申请试用】针对 IPv4/IPv6 双栈集群,提供按需配置服务通信协议能力,兼容 IPv6 地址访问服务的业务场景。包括以下选项: - IPv4:表示仅支持 IPv4 地址访问服务。
- IPv4&IPv6:同时支持通过 IPv4 和 IPv6 访问服务,默认使用 IPv4。
- IPv6&IPv4:同时支持通过 IPv6 和 IPv4 访问服务,默认使用 IPv6。
|
直通 Pod 模式 | 仅 VPC-CNI 容器网络模型集群中显示该参数。默认开启,开启后直接关联 Pod ENI 作为负载均衡器的后端。但负载均衡器允许的后端服务器数有限,需自行规划和保证。详细限制,请参见 CLB 约束限制。 |
负载均衡器 | 配置服务的负载均衡器,按需选择或自动创建一个负载均衡器。支持 公网访问 和 私网访问 两种访问模式。 说明 若通信协议选择 IPv4&IPv6 或 IPv6&IPv4,将仅支持私网访问的负载均衡器,此时需要注意以下情况: - 如需提供公网 IPv4 访问能力,可在 Service 创建完成后前往 CLB 控制台绑定公网 IP。
- 如需提供公网 IPv6 访问能力,可在 Service 创建完成后前往 CLB 控制台开通 IPv6 地址的公网带宽。
- 使用已有:仅支持已有的且未被容器服务使用的 CLB 实例。使用已有 CLB 实例时不覆盖该实例已有的监听器规则。
非特殊情况建议选择全新创建的 CLB 实例。 - 自动创建:自动创建新的 CLB 实例。您需配置以下参数,详细参数说明,请参见 创建负载均衡实例:
注意 - 请勿将自动创建的 CLB 实例使用到其他 Ingress 或者 Service 资源中,避免资源残留。
- 自动创建的 CLB 实例在服务删除时会被同步删除,请勿手动修改该 CLB 实例的监听器。
- 仅支持创建 按量计费 类型的 CLB 实例。
- 使用已有 CLB 实例时,仅支持使用通过负载均衡控制台创建的 CLB 实例,不支持使用通过容器服务控制台创建的 CLB 实例。
- 通过容器服务创建的 CLB,支持多可用区能力。若当前地域的负载均衡器支持跨可用区容灾,将默认创建主备可用区负载均衡器实例,当主可用区故障时,访问流量切换至备可用区,从而保障业务正常运行。
|
监听器 | 监听器负责监听负载均衡器上的请求,并分发流量。您需要配置监听器的调度算法和健康检查: - 调度算法:指定监听器转发请求时需要遵循的规则。
- 加权轮询(WRR):基于权重值进行流量的分发,权重值越高的后端服务器,被轮询到的次数(概率)越高。
- 加权最小连接数(WLC):优先将流量分发给当前连接数与权重比值最小的后端。
- 源地址哈希(SH):基于源 IP 地址的一致性哈希,相同源地址的请求会调度到相同的后端服务器。
- 健康检查:按需选择是否启用健康检查。若启用健康检查,需要配置以下参数:
- 响应超时:等待健康检查响应的时间。如果后端服务器在指定的时间内没有正确响应,则判定为健康检查异常。
- 检测间隔:执行健康检查的时间间隔。默认间隔为 2 秒,表示每 2 秒对后端服务器进行一次健康检查。
- 健康阈值:判断后端服务器正常的健康检查次数。默认为 3 次,表示连续执行 3 次健康检查,结果均为“正常”的后端服务器则判定为健康检查正常。
- 不健康阈值:判断后端服务器异常的健康检查次数。默认为 3 次,表示连续执行 3 次健康检查,结果均为“异常”的后端服务器则判定为健康检查异常。
|
端口映射 | 配置服务端口与容器端口的映射关系:- 名称:配置端口映射的名称。
- 服务端口:配置 Service 对外提供服务的端口,同一种协议的服务端口不允许重复。
- 协议:在下拉菜单中选择协议,支持 TCP 协议和 UDP 协议。
- 容器端口:配置容器的端口,该端口为工作负载对外提供服务的端口号或端口名称。例如:Nginx 开放的默认端口号为 80。
|
标签选择器 | Service 通过标签选择器与后端容器组实例(Pod)绑定: - 添加标签:输入添加工作负载的标签,关联 Service 到指定工作负载。您可以在集群管理页面左侧导航栏单击 工作负载,找到目标工作负载,获取工作负载标签。
- 关联工作负载:直接选择工作负载,关联到 Service。当前仅支持关联 无状态负载 和 有状态负载。
注意 LoadBlancer 类型 Service 关联弹性容器实例方式部署的工作负载时,仅支持使用 直通 Pod 模式,系统默认开启 直通 Pod 模式 开关,且不允许关闭。 |
外部流量策略 | Service 转发外部流量的策略: - Cluster:流量可以均衡转发到工作负载对应的所有 Pod。
- Local:流量只能转发到本节点的 Pod,可能存在流量不均衡转发问题,但可以保留客户端源 IP。
|
会话保持 | 默认不配置。您可根据实际需求,勾选 配置超时时间,启用会话保持功能,并配置会话保持的持续时间。启用后 Service 将来自同一个 IP 地址的访问请求转发到同一台后端服务器上。 建议设置超时时间数值大于 120 秒。 说明 LoadBlancer 类型 Service 的会话保持,建议与 CLB 监听器的会话保持时间一致。两种会话保持相关说明,请参见 FAQ。 |
- 单击 确定,完成配置。
结果验证
配置完成后,您可以在服务列表中查看已创建的负载均衡服务。其中,外部端点 即是与该服务对接的 CLB 公网 IP 地址。
单击目标服务的 操作 栏,在弹出的下拉菜单中选择 编辑 Yaml,可以查看该负载均衡服务的配置,包括该服务使用的 CLB 实例 ID。您可以在 均衡负载 控制台中,使用 CLB 实例 ID 查找对应的 CLB 实例。