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

背景信息

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

注意 禁止从负载均衡控制台直接修改SLB实例的监听配置(含监听+证书),可能导致SLB控制台修改的配置回退,引发应用入口相关的故障。

为容器服务K8s集群或自建K8s集群中的应用绑定SLB有以下区别。

  • 自建K8s集群:应用绑定SLB都需新购SLB实例,每个应用独享SLB实例。
  • 容器服务K8s集群:应用绑定SLB可以新购SLB实例来独享SLB实例,也可以复用SLB实例。

约束限制

  • 不支持使用容器服务(ACK)控制台、kubectl或者第三方界面删除或修改EDAS创建的Service资源(EDAS资源含有以下label:edas-domain:edas-admin)。
  • 不支持使用SLB控制台修改或删除EDAS代购的SLB实例。
  • 不支持使用SLB控制台修改或删除EDAS托管的SLB实例的监听配置。
  • 不支持使用命令行工具kubectl或在容器服务控制台更新Service的外部流量策略配置,否则可能导致修改被回退,引发应用访问相关的故障。

绑定新建SLB

  1. 登录EDAS控制台
  2. 按需执行以下任一操作来进入应用的详情页面:
    • 在左侧导航栏选择资源管理 > 容器服务K8s集群(或资源管理 > Serverless K8s集群),在顶部菜单栏选择地域并在页面上方选择微服务空间,在容器服务K8s集群Serverless K8s集群页面单击集群ID,然后在集群详情页面的应用列表区域单击具体应用名称。
    • 在左侧导航栏单击应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后单击目标应用名称。
  3. 应用总览页面的访问方式配置区域,单击负载均衡(公网)右侧的加号图标。
    说明 如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击编辑图标进入配置页面修改负载均衡信息,或可单击图标解除SLB的绑定。
  4. 负载均衡对话框,设置负载均衡参数。
    1. 选择SLB下拉列表中选择新建SLB,然后在右侧单击修改并选择符合您实际需求的SLB规格,规则选择完毕后,单击完成

      EDAS为您的应用自动购买一个新的SLB实例,SLB的信息会显示在下方。

      您可以单击查看价格了解SLB价格。

      SLB_size
    2. 配置调度算法。
    3. 配置外部流量策略。
      • Local:流量只发给本机的Pod。

        配置为Local模式时,只有集群中存在Service对应Pod的节点会被添加到SLB后端,且流量不会转发到集群中其他节点的Pod中。结合SLB的负载均衡能力,能够获得较好的性能且该模式下能够保留四层源IP地址。

      • Cluster:流量可以转发到集群中其他节点上的Pod。

        配置为Cluster模式时,集群的所有节点将被挂载到SLB的后端服务器组中,即使所访问的节点上没有启动对应的Pod,也能通过SNAT转发访问到Pod服务。但是该模式无法保留四层源IP地址。

      说明 当配置为Local模式时,推荐配置SLB的调度算法为加权轮询(WRR)。在容器集群中,CCM组件会根据节点上部署的Pod的数量来调整节点在SLB后端的权重,使用WRR算法能够获得较好的负载均衡能力。
    4. 配置监听。
      • TCP协议:
        • SLB端口(应用名):公网负载均衡前端端口,通过该端口访问应用,可设置范围为1~65535。
        • 容器端口(TargetPort):进程监听的端口。一般由程序定义,例如:Web应用默认使用8080端口。
      • HTTPS协议:
        • HTTPS端口(应用名):公网负载均衡前端端口,通过该端口访问应用,可设置范围为1~65535。
        • SSL证书:SSL协议证书,在下拉菜单中选择已上传的SSL证书。
        • 容器端口(TargetPort):进程监听的端口。一般由程序定义,例如:Web应用默认使用8080端口。
      说明 该监听配置支持设置多个监听,您单击添加新的监听进行配置。
    5. 单击确定
  5. 可选:如果您的应用访问需求量已经超出了当前设置的SLB规格,则重复步骤3~步骤4,添加多个SLB。
    说明 SLB的规格指标主要有最大连接数每秒新建连接数每秒查询数,如果应用访问量超过了SLB的规格指标,您可以通过添加多个SLB来分担流量压力。

结果验证

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

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

问题反馈

如果在使用容器服务Kubernetes集群过程中有任何疑问,欢迎您加入钉钉群进行反馈。