EDAS支持以容器的方式托管应用,EDAS代为构建镜像并部署到Kubernetes集群,有效简化流程降低使用门槛。

背景信息

EDAS支持以容器的方式托管应用,EDAS代为构建镜像并部署到Kubernetes集群,有效简化流程降低使用门槛。阿里云上K8s集群中部署的CCM(Cloud Controller Manager)组件已支持将集群内一个应用的多个容器副本无缝对接到CLB后端,并支持应用进行弹性扩缩容时,自动将应用副本添加到CLB监听后端或从后端移除。

使用CLB的两种方式:

  • 在EDAS中部署的应用,可以在应用总览页选择配置新建CLB,使用由EDAS代购的CLB。通过这种方式使CLB不支持在负载均衡控制台直接修改该CLB的配置。
  • 在EDAS中复用已有CLB,在应用总览页选择已经在负载均衡控制台创建的CLB,配置EDAS应用端口监听,暴露EDAS应用同时不影响CLB已有监听。详细操作,请参考复用负载均衡CLB

约束限制

  • 禁止从负载均衡控制台直接修改EDAS代购的CLB实例的监听配置(含监听和证书),可能导致负载均衡控制台修改的配置回退,引发应用入口相关的故障。
  • 若复用CLB来暴露K8s上EDAS应用,则创建的CLB要和K8s集群在同一个VPC内。
  • 新建CLB或复用CLB的使用限制及配额,请参考使用限制
  • 使用CLB暴露出EDAS应用后,在K8s集群内部节点存在无法通过CLB地址访问EDAS应用问题。详细信息,请参考Kubernetes集群中访问LoadBalancer暴露出去的SLB地址不通

前提条件

您已成功在EDAS控制台导入Kubernetes集群并部署了一个EDAS应用。

使用CLB访问应用

使用CLB可以为一个应用的多个后端副本提供一个稳定的对外访问地址,并进行流量负载均衡。可以使用不同CLB为一个应用的不同程序端口提供对外访问,且不同的CLB可以配置不同的实例规格,以支持不同服务的不同业务流量需求。也可以使用多个CLB绑定同一组后端副本,以扩展单个CLB的规格限制,分担流量压力。

TY

K8s上EDAS应用支持使用公网CLB和私网CLB组合方式提供应用访问。能够使用公网CLB提供Web应用公网访问,使用私网CLB提供后端其他应用间内网访问。您可以根据业务实际需求配置各自的应用扩缩及负载均衡。

YU
  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后单击目标应用名称。
  2. 应用总览页面的访问方式配置区域,单击负载均衡(公网)负载均衡(私网)右侧的加号图标。详细信息,请参见添加负载均衡CLB
    说明 如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击编辑图标进入配置页面修改负载均衡信息,或可单击图标解除CLB的绑定。
  3. 负载均衡对话框,设置负载均衡参数。
  4. 单击确定,等待应用变更状态正常。
  5. 可选:如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤3步骤4,添加多个CLB。

复用CLB

为了降低成本,减少CLB的实例数,EDAS允许为多个应用共享一个CLB来支持对外服务访问,以支持多个应用通过配置不同的监听端口使用一个CLB对外访问。在EDAS中,找到需要使用CLB的应用,在进行访问配置时,选择同一个CLB并配置不同的监听端口及程序端口映射,即可支持多个应用使用同一个CLB。

YT
说明
  • 复用CLB需要您持有一个或多个处于运行中状态的CLB实例。具体操作,请参见创建和管理CLB实例
  • 如果需要使用公网CLB绑定应用,则需CLB网络类型为公网;如果需要使用私网CLB绑定应用,则需要CLB网络类型为私网。
  • CLB实例和K8s集群位于同一地域。
  • 如果CLB实例和K8s集群实例的网络类型均为专有网络,则必须位于同一专有网络。
  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后单击目标应用名称。
  2. 应用总览页面的访问方式配置区域,单击负载均衡(公网)负载均衡(私网)右侧的加号图标。详细信息,请参见复用负载均衡CLB
    说明 如果您已经配置过负载均衡,则在此处会显示负载均衡的IP和端口信息,您可单击编辑图标进入配置页面修改负载均衡信息,或可单击图标解除CLB的绑定。
  3. 负载均衡对话框,设置负载均衡参数。
  4. 单击确定,等待应用变更状态正常。
  5. 可选:如果您的应用访问需求量已经超出了当前设置的CLB规格,则重复步骤3步骤4,添加多个CLB。

更新CLB配置

当您持有一个绑定了CLB的EDAS应用,需要修改CLB配置时,可参考本小节。应用绑定CLB的具体操作,请参见添加负载均衡CLB

注意事项
  • 在EDAS中支持更改CLB的实例规格、调度算法、监听端口映射,对于EDAS新建CLB和监听的默认配置,请参见新建CLB和监听配置的默认值
  • 对于EDAS代购的CLB禁止通过负载均衡控制台进行配置更改,以避免多入口更改配置导致的数据不一致问题,防止变更的配置回退;非EDAS代购的CLB支持在负载均衡控制台进行配置更改。
  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后单击目标应用名称。
  2. 应用总览页面的访问方式配置区域,单击负载均衡(公网)负载均衡(私网)右侧的编辑图标。
  3. 负载均衡对话框,设置负载均衡参数。
    更改实例规格为简约型,调整调度算法为轮询,并修改已有的HTTPS协议类型443端口监听的容器端口为18081。VGB
  4. 单击确定,等待应用变更状态正常。

K8s中EDAS应用的转发规则配置

在K8s上部署的EDAS应用,能够使用应用路由实现根据域名和URL进行流量分发,以实现七层负载均衡路由转发功能。应用路由中使用的CLB无需用户额外购买及配置,详细信息,请参见创建应用路由(Nginx Ingress)

说明 通过EDAS平台代购的CLB不支持通过负载均衡控制台进行路由规则配置更改,仅非EDAS代购的CLB支持在负载均衡控制台进行路由规则配置。
GH

K8s中EDAS应用的健康检查

在K8s上部署的EDAS应用时,可以通过配置应用生命周期的钩子和探针来替代CLB中监听的健康检查配置。

说明

通过EDAS平台代购的CLB不支持通过负载均衡控制台进行健康检查配置更改,非EDAS代购的CLB支持在负载均衡控制台进行健康检查配置。

UI

使用这种方式可以根据应用中副本的健康状态动态的更新CLB中对应监听的后端,此外还支持更多的健康检查方式。详细信息,请参见配置应用生命周期的钩子和探针

新建CLB和监听配置的默认值

配置 默认值及相关描述
负载均衡带宽 5120 Mbps
负载均衡的IP版本 IPv4
负载均衡删除保护 打开
负载均衡配置修改保护 打开
会话保持时间 0秒
会话保持开关 关闭
健康检查开关 TCP类型监听默认开启HTTPS类型监听默认关闭。
健康检查协议 TCP
健康检查健康阈值

健康检查连续成功N次后,将后端服务器的健康检查状态由fail判定为success,默认值为3。

健康检查不健康阈值

健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail,默认值为3。

健康检查间隔时间 2秒
健康检查响应超时时间

接收来自运行状况检查的响应需要等待的时间,适用于TCP模式。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败,默认值为5秒。

健康检查正常状态码 HTTP_2xx
访问控制功能开关 关闭
TCP监听连接超时时间

配置TCP连接超时,连接空闲时间超过该时长后,负载均衡会主动断开该连接,默认值为900秒。

HTTPS监听连接空闲超时时间 15秒
HTTPS监听HTTP2特性 打开