添加负载均衡CLB

在EDAS中的容器服务Kubernetes集群中创建应用后,可以为应用添加公网或私网负载均衡CLB来实现应用的公网或私网访问。本文介绍如何为容器服务Kubernetes集群中的应用添加公网CLB和私网CLB。

背景信息

如果需要为应用关联负载均衡CLB,必须在EDAS控制台完成关联CLB实例的监听配置管理。

重要 禁止从负载均衡控制台直接修改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(公网)

  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择K8s集群,然后单击目标应用名称。

  2. 应用总览页面的访问方式配置区域,单击负载均衡(公网)右侧的加号图标。
    说明

    如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击编辑图标进入配置页面修改负载均衡信息,或可单击image.png图标解除CLB的绑定。

  3. 负载均衡(公网)对话框,设置负载均衡参数,完成后单击确认
    配置项描述
    选择SLB在下拉列表中选择新建SLB或已有SLB。
    调度算法选择轮询(RR)加权轮询(WRR)
    外部流量策略

    选择新建SLB时,外部流量策略区域下方可以查看SLB配额检查和账户余额检查的状态和说明以及负载均衡SLB-公网的产品配置、数量、付费方式、购买周期和资费。单击查看价格了解SLB价格。

    选择LocalCluster两种模式:

    • 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端口。
    说明 该监听配置支持设置多个监听,您可以单击添加新的监听配置。
  4. 如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤2~步骤3,添加多个SLB。
    说明

    CLB的规格指标主要有最大连接数每秒新建连接数每秒查询数,如果应用访问量超过了CLB的规格指标,您可以通过添加多个CLB来分担流量压力。

结果验证

在浏览器地址栏中输入<负载均衡IP>:<端口号>,例如115.xx.xx.xx:80,再按回车键即可进入各自的应用首页。

如果负载均衡右侧未出现IP和端口信息,则表示绑定负载均衡失败,请进入变更记录查看变更详情,根据变更记录排查并修复失败原因。

绑定新建CLB(私网)

  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择K8s集群,然后单击目标应用名称。

  2. 应用总览页面的访问方式配置区域,单击负载均衡(私网)右侧的加号图标。
    说明

    如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击编辑图标进入配置页面修改负载均衡信息,或可单击image.png图标解除CLB的绑定。

  3. 负载均衡(私网)对话框,设置负载均衡参数,完成后单击确认
    参数描述
    选择SLB您可以在下拉列表中选择新建SLB或已有SLB。
    调度算法您可以选择轮询(RR)加权轮询(WRR)
    外部流量策略

    当您选择新建SLB时,外部流量策略区域下方可以查看SLB配额检查的状态和说明以及负载均衡SLB-私网的产品配置和数量。

    您可以选择LocalCluster两种模式:

    • 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端口。
    说明 该监听配置支持设置多个监听,您可以单击添加新的监听进行配置。
  4. 如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤2~步骤3,添加多个SLB。
    说明

    CLB的规格指标主要有最大连接数每秒新建连接数每秒查询数,如果应用访问量超过了CLB的规格指标,您可以通过添加多个CLB来分担流量压力。

结果验证

在浏览器地址栏中输入<负载均衡IP>:<端口号>,例如115.xx.xx.xx:80,再按回车键即可进入各自的应用首页。

如果负载均衡右侧未出现IP和端口信息,则表示绑定负载均衡失败,请进入变更记录查看变更详情,根据变更记录排查并修复失败原因。