更新时间:2025-09-04 GMT+08:00
分享

ELB与云原生应用

ELB可以作为云容器引擎CCE流量入口的负载均衡器,通过ELB接入客户的服务请求并转发到CCE的POD/容器中。

CCE中使用ELB的场景如下:

  1. CCE的service 主要使用ELB的4层(TCP/UDP监听器)作为负载均衡, 也支持使用7层(HTTP/HTTPS监听器)作为负载均衡,使用一些7层功能,如证书卸载、7层访问日志、7层丰富的CES监控指标等。
  2. CCE的ELB ingress 使用ELB的7层(HTTP/HTTPS监听器),支持更多应用层高级功能,如7层路由,证书卸载、7层访问日志,7层丰富的监控指标。

CCE具有强大的弹性能力和自动化能力,能快速拉起后端负载,结合ELB可以实现的服务的高可用、灰度发布等多种弹性和高可用场景。

CCE集群通过负载均衡类的服务对外提供访问

负载均衡(LoadBalancer)类型的服务在NodePort的基础上添加了外部负载均衡器,可以通过弹性负载均衡(ELB)将外部流量向集群内的多个Pod进行分发,与NodePort类型相比提供了高可靠的保障。Service会自动分配一个外部IP地址,允许客户端通过该IP访问服务。该类型服务不仅支持在OSI模型的第四层(传输层)处理TCP和UDP流量,还能扩展至第七层(应用层),支持HTTP和HTTPS流量的管理。

在云上提供应用访问时,若您需要提供一个稳定且易于管理的对外访问入口,可以使用负载均衡类型的服务。例如生产环境中需从互联网访问的公共服务,这些服务需承受大量外部流量并确保高可用性,如Web应用和API服务等。负载均衡类型服务的访问方式由公网弹性负载均衡服务地址以及设置的访问端口组成,例如“10.117.117.117:80”

图1 负载均衡(LoadBalancer)

如果您需要配置负载均衡类型的服务,请参考创建负载均衡类型的服务

通过注解(Annotations)配置负载均衡的高级功能

创建LoadBalancer类型的服务通常为您提供四层的网络访问。通过在YAML中添加注解Annotation(注解),您可以实现CCE提供的一些高级功能。

如果您需要在创建LoadBalancer类型的Service时配置更多高级功能,请参考使用注解(Annotations)配置负载均衡的高级功能

云容器引擎CCE使用ELB Ingress

Service基于TCP和UDP协议进行访问转发,为集群提供了四层负载均衡的能力。但是在实际场景中,Service无法满足应用层中存在着大量的HTTP/HTTPS访问需求。因此,Kubernetes集群提供了另一种基于HTTP协议的访问方式——Ingress。

Ingress是Kubernetes集群中一种独立的资源,制定了集群外部访问流量的转发规则。如图2所示,用户可根据域名和路径对转发规则进行自定义,完成对访问流量的细粒度划分。

图2 Ingress示意图

当您希望在CCE集群中配置ELB Ingress实现Ingress流量管理时,请参考路由(Ingress)概述

通过注解(Annotations)配置ELB Ingress高级功能

通过在YAML中添加注解(Annotations),您可以实现更多的Ingress高级功能,如果您有使用Ingress高级功能的需求请参考使用注解(Annotations)配置ELB Ingress高级功能

自建Nginx Ingress迁移到ELB Ingress

ELB Ingress是基于华为云弹性负载均衡(Elastic Load Balance)实现的Ingress服务。相比于自建Nginx Ingress,ELB Ingress提供更为强大的Ingress流量管理功能,具有以下优势:

  • 全托管免运维:ELB属于全托管免运维的云服务,不占用工作节点。
  • 高可用性:ELB支持多可用区的同城双活容灾,无缝实时切换。完善的健康检查机制,保障业务实时在线。
  • 自动弹性:ELB支持自动弹性规格,处理能力随业务峰值自动伸缩。
  • 超强性能:单个ELB实例最大支持100万QPS、千万级并发连接。
  • 云产品生态集成:ELB支持与WAF等多种云产品结合使用。
  • 配置变更热更新:配置变更完全热更新,不需要Reload进程,对长连接无损。

您可以参考自建Nginx Ingress迁移到ELB Ingress完成迁移。

自定义部署Nginx Ingress Controller

Nginx Ingress Controller是一款业界流行的开源Ingress控制器,有着广泛的应用。在大规模集群场景下,用户有在集群中部署多套Nginx Ingress Controller的诉求,不同流量使用不同的控制器,将流量区分开。例如,集群中部分服务需要通过公网Ingress方式对外提供访问,但是又有部分对内开放的服务不允许使用公网访问,只支持对同VPC内的其他服务访问,您可以通过部署两套独立的Nginx Ingress Controller,绑定两个不同的ELB实例来满足这类需求场景。

图3 多个Nginx Ingress应用场景

您可以参考自定义部署Nginx Ingress Controller,实现在同一个集群中部署多个Nginx Ingress Controller。

相关文档