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应用。
- 使用JAR包或WAR包部署应用。具体操作,请参见在容器服务K8s集群中使用JAR包或WAR包部署应用。
- 使用镜像部署应用。具体操作,请参见在K8s集群中使用镜像部署Java微服务应用。
- 将K8s中Deployment转化为EDAS应用。具体操作,请参见使用控制台转化Deployment为EDAS应用。
使用CLB访问应用
使用CLB可以为一个应用的多个后端副本提供一个稳定的对外访问地址,并进行流量负载均衡。可以使用不同CLB为一个应用的不同程序端口提供对外访问,且不同的CLB可以配置不同的实例规格,以支持不同服务的不同业务流量需求。也可以使用多个CLB绑定同一组后端副本,以扩展单个CLB的规格限制,分担流量压力。
K8s上EDAS应用支持使用公网CLB和私网CLB组合方式提供应用访问。能够使用公网CLB提供Web应用公网访问,使用私网CLB提供后端其他应用间内网访问。您可以根据业务实际需求配置各自的应用扩缩及负载均衡。
复用CLB
为了降低成本,减少CLB的实例数,EDAS允许为多个应用共享一个CLB来支持对外服务访问,以支持多个应用通过配置不同的监听端口使用一个CLB对外访问。在EDAS中,找到需要使用CLB的应用,在进行访问配置时,选择同一个CLB并配置不同的监听端口及程序端口映射,即可支持多个应用使用同一个CLB。
- 复用CLB需要您持有一个或多个处于运行中状态的CLB实例。具体操作,请参见创建和管理CLB实例。
- 如果需要使用公网CLB绑定应用,则需CLB网络类型为公网;如果需要使用私网CLB绑定应用,则需要CLB网络类型为私网。
- CLB实例和K8s集群位于同一地域。
- 如果CLB实例和K8s集群实例的网络类型均为专有网络,则必须位于同一专有网络。
更新CLB配置
当您持有一个绑定了CLB的EDAS应用,需要修改CLB配置时,可参考本小节。应用绑定CLB的具体操作,请参见添加负载均衡CLB。
- 在EDAS中支持更改CLB的实例规格、调度算法、监听端口映射,对于EDAS新建CLB和监听的默认配置,请参见新建CLB和监听配置的默认值。
- 对于EDAS代购的CLB禁止通过负载均衡控制台进行配置更改,以避免多入口更改配置导致的数据不一致问题,防止变更的配置回退;非EDAS代购的CLB支持在负载均衡控制台进行配置更改。
K8s中EDAS应用的转发规则配置
在K8s上部署的EDAS应用,能够使用应用路由实现根据域名和URL进行流量分发,以实现七层负载均衡路由转发功能。应用路由中使用的CLB无需用户额外购买及配置,详细信息,请参见创建应用路由(Nginx Ingress)。
K8s中EDAS应用的健康检查
在K8s上部署的EDAS应用时,可以通过配置应用生命周期的钩子和探针来替代CLB中监听的健康检查配置。
通过EDAS平台代购的CLB不支持通过负载均衡控制台进行健康检查配置更改,非EDAS代购的CLB支持在负载均衡控制台进行健康检查配置。
使用这种方式可以根据应用中副本的健康状态动态的更新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特性 | 打开 |