在EDAS中的容器服务Kubernetes集群中创建应用后,可以为应用添加公网或私网负载均衡CLB来实现应用的公网或私网访问。本文介绍如何为容器服务Kubernetes集群中的应用添加公网CLB和私网CLB。
背景信息
如果需要为应用关联负载均衡CLB,必须在EDAS控制台完成关联CLB实例的监听配置管理。
为容器服务K8s集群或自建K8s集群中的应用绑定CLB有以下区别:
- 自建K8s集群:为应用绑定CLB都需新购CLB实例,每个应用独享CLB实例。
- 容器服务K8s集群:为应用绑定CLB可以新购CLB实例来独享CLB实例,也可以复用CLB实例。
约束限制
为容器服务K8s集群或自建K8s集群中的应用绑定CLB有以下约束条件,否则可能导致修改被回退,引发应用访问相关的故障。
- 不支持通过容器服务ACK控制台、kubectl或者第三方界面删除或修改EDAS创建的Service资源(EDAS资源含有以下label:edas-domain:edas-admin)。
- 不支持通过负载均衡控制台修改或删除EDAS代购的CLB实例。
- 不支持通过负载均衡控制台修改或删除EDAS托管的CLB实例的监听配置。
- 不支持通过命令行工具kubectl或在容器服务控制台更新Service的外部流量策略配置。
绑定新建CLB(公网)
登录EDAS控制台,在左侧导航栏单击 ,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择K8s集群,然后单击目标应用名称。
- 在应用总览页面的访问方式配置区域,单击负载均衡(公网)右侧的图标。说明
如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击图标进入配置页面修改负载均衡信息,或可单击图标解除CLB的绑定。
- 在负载均衡(公网)对话框,设置负载均衡参数,完成后单击确认。
配置项 描述 选择SLB 在下拉列表中选择新建SLB或已有SLB。 调度算法 选择轮询(RR)或加权轮询(WRR)。 外部流量策略 选择新建SLB时,外部流量策略区域下方可以查看SLB配额检查和账户余额检查的状态和说明以及负载均衡SLB-公网的产品配置、数量、付费方式、购买周期和资费。单击查看价格了解SLB价格。
选择Local和Cluster两种模式:
- Local:流量只发给本机的Pod。配置为Local模式时,只有集群中存在Service对应Pod的节点会被添加到SLB后端,且流量不会转发到集群中其它节点的Pod中。结合SLB的负载均衡能力,能够获得较好的性能,且该模式支持保留四层源IP地址。说明 当配置为Local模式时,推荐配置SLB的调度算法为加权轮询(WRR)。在容器集群中,CCM组件会根据节点上部署的Pod的数量来调整节点在SLB后端的权重,使用WRR算法能够获得较好的负载均衡能力。
- Cluster:流量可以转发到集群中其他节点上的Pod。说明 配置为Cluster模式时,集群的所有节点将被挂载到SLB的后端服务器组中,即使所访问的节点上没有启动对应的Pod,也可以通过SNAT转发访问到Pod服务。但是该模式无法保留四层源IP地址。
该SLB已有的监听信息 仅当选择SLB类型为已有SLB时,需要配置此项。您可以查看网络协议、端口号和容器端口(Target port)。 TCP|HTTP 协议 - SLB端口(应用名):公网负载均衡前端端口,通过该端口访问应用,可设置范围为[1,65535]。
- 容器端口(TargetPort):进程监听的端口,一般由程序定义。例如,Web应用默认使用8080端口。
UDP 协议 - SLB端口(应用名):公网负载均衡前端端口,通过该端口访问应用。
- 容器端口(TargetPort):进程监听的端口,一般由程序定义。
HTTPS协议 - HTTPS端口(应用名):公网负载均衡前端端口,通过该端口访问应用,可设置范围为[1,65535]。
- SSL证书:SSL协议证书,在下拉菜单中选择已上传的SSL证书。
- 容器端口(TargetPort):进程监听的端口,一般由程序定义。例如,Web应用默认使用8080端口。
说明 该监听配置支持设置多个监听,您可以单击添加新的监听配置。 - Local:流量只发给本机的Pod。配置为Local模式时,只有集群中存在Service对应Pod的节点会被添加到SLB后端,且流量不会转发到集群中其它节点的Pod中。结合SLB的负载均衡能力,能够获得较好的性能,且该模式支持保留四层源IP地址。
- 如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤2~步骤3,添加多个SLB。说明
CLB的规格指标主要有最大连接数、每秒新建连接数和每秒查询数,如果应用访问量超过了CLB的规格指标,您可以通过添加多个CLB来分担流量压力。
结果验证
在浏览器地址栏中输入<负载均衡IP>:<端口号>
,例如115.xx.xx.xx:80
,再按回车键即可进入各自的应用首页。
如果负载均衡右侧未出现IP和端口信息,则表示绑定负载均衡失败,请进入变更记录查看变更详情,根据变更记录排查并修复失败原因。
绑定新建CLB(私网)
登录EDAS控制台,在左侧导航栏单击 ,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择K8s集群,然后单击目标应用名称。
- 在应用总览页面的访问方式配置区域,单击负载均衡(私网)右侧的图标。说明
如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击图标进入配置页面修改负载均衡信息,或可单击图标解除CLB的绑定。
- 在负载均衡(私网)对话框,设置负载均衡参数,完成后单击确认。
参数 描述 选择SLB 您可以在下拉列表中选择新建SLB或已有SLB。 调度算法 您可以选择轮询(RR)或加权轮询(WRR)。 外部流量策略 当您选择新建SLB时,外部流量策略区域下方可以查看SLB配额检查的状态和说明以及负载均衡SLB-私网的产品配置和数量。
您可以选择Local和Cluster两种模式:
- Local:流量只发给本机的Pod。配置为Local模式时,只有集群中存在Service对应Pod的节点会被添加到SLB后端,且流量不会转发到集群中其他节点的Pod中。结合SLB的负载均衡能力,能够获得较好的性能且该模式下能够保留四层源IP地址。说明 当配置为Local模式时,推荐配置SLB的调度算法为加权轮询(WRR)。在容器集群中,CCM组件会根据节点上部署的Pod的数量来调整节点在SLB后端的权重,使用WRR算法能够获得较好的负载均衡能力。
- Cluster:流量可以转发到集群中其他节点上的Pod。说明 配置为Cluster模式时,集群的所有节点将被挂载到SLB的后端服务器组中,即使所访问的节点上没有启动对应的Pod,也能通过SNAT转发访问到Pod服务。但是该模式无法保留四层源IP地址。
该SLB已有的监听信息 当您选择已有SLB时,该参数才会出现。您可以查看网络协议、端口号和容器端口(Target port)。 TCP|HTTP 协议 - SLB端口(应用名):私网负载均衡前端端口,通过该端口访问应用,可设置范围为1~65535。
- 容器端口(TargetPort):进程监听的端口。一般由程序定义,例如:Web应用默认使用8080端口。
HTTPS协议 - HTTPS端口(应用名):私网负载均衡前端端口,通过该端口访问应用,可设置范围为1~65535。
- SSL证书:SSL协议证书,在下拉菜单中选择已上传的SSL证书。
- 容器端口(TargetPort):进程监听的端口。一般由程序定义,例如:Web应用默认使用8080端口。
说明 该监听配置支持设置多个监听,您可以单击添加新的监听进行配置。 - Local:流量只发给本机的Pod。配置为Local模式时,只有集群中存在Service对应Pod的节点会被添加到SLB后端,且流量不会转发到集群中其他节点的Pod中。结合SLB的负载均衡能力,能够获得较好的性能且该模式下能够保留四层源IP地址。
- 如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤2~步骤3,添加多个SLB。说明
CLB的规格指标主要有最大连接数、每秒新建连接数和每秒查询数,如果应用访问量超过了CLB的规格指标,您可以通过添加多个CLB来分担流量压力。
结果验证
在浏览器地址栏中输入<负载均衡IP>:<端口号>
,例如115.xx.xx.xx:80
,再按回车键即可进入各自的应用首页。
如果负载均衡右侧未出现IP和端口信息,则表示绑定负载均衡失败,请进入变更记录查看变更详情,根据变更记录排查并修复失败原因。