ALB Ingress除了支持在容器服务ACK/ACK Serverless等Kubernetes产品中使用,还支持与企业级分布式应用服务EDAS(Enterprise Distributed Application Service)、Serverless应用引擎SAE(Serverless App Engine)、云上自建Kubernetes集群等相结合使用,以满足您多样化的业务需求。本文为您介绍ALB Ingress的基础功能、高级功能以及与其他产品集成使用的操作指导。
基础功能
AlbConfig是由ALB Ingress Controller提供的CRD资源,ALB Ingress Controller使用AlbConfig来配置ALB实例和监听。下表为您介绍如何在容器ACK系列产品中安装和卸载ALB Ingress Controller、如何创建与修改AlbConfig以及开启日志服务等操作。
对象 | 功能 | 描述 | 容器服务ACK文档链接 | 容器服务ACK Serverless文档链接 |
ALB Ingress Controller | ALB Ingress Controller组件管理 | 容器服务基于ALB提供了托管的ALB Ingress Controller。 您可以通过在创建集群时安装ALB Ingress Controller,也可以通过在组件管理页面安装ALB Ingress Controller。 | ||
实例管理 | 创建AlbConfig | AlbConfig是在ALB Ingress Controller提供的CRD资源,使用AlbConfig CRD来配置ALB实例和监听。 一个AlbConfig对应一个ALB实例,如果您需要使用多个ALB实例,可以通过创建多个AlbConfig实现。 | ||
关联Ingress | AlbConfig通过K8s中标准的IngressClass资源与Ingress进行关联。您需要先创建IngressClass,然后关联AlbConfig。 | |||
修改AlbConfig | 您可以修改AlbConfig的属性,比如名称、vSwitch配置等。 配置完成保存后,新配置自动生效。 | |||
开启日志服务访问日志 | 当您需要ALB Ingress能够收集访问日志Access Log,您需要在AlbConfig中指定 说明
| |||
复用已有ALB实例 | 当您需要复用已有ALB实例,您只需要在创建AlbConfig时指定ALB实例ID即可。 | |||
使用多个ALB实例 | 当您需要使用多个ALB实例时,您可以在Ingress中通过 | |||
删除ALB实例 | 一个ALB实例对应一个AlbConfig, 因此可以通过删除AlbConfig实现删除ALB实例,但前提是先需要删除AlbConfig关联的所有Ingress。 | |||
监听管理 | 指定HTTPS证书 | 通过ALBConfig可以指定ALB证书,您可以通过配置ALBConfig的 | ||
支持TLS安全策略 | 当前ALBConfig配置HTTPS监听时,支持指定TLS安全策略。TLS安全策略包含自定义策略和系统默认策略,更多信息,请参见TLS安全策略。 |
高级功能
在容器服务ACK集群中,ALB Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。下表为您介绍如何通过ALB Ingress将来自不同域名或URL路径的请求转发给不同的后端服务器组、将HTTP访问重定向至HTTPS、灰度发布等功能。
功能 | 描述 | 容器服务ACK文档链接 | 容器服务ACK Serverless文档链接 |
基于域名转发请求 | 创建一个简单的Ingress,根据指定的正常域名或空域名转发请求。 | ||
基于URL路径转发请求 | ALB Ingress支持按照URL转发请求,可以通过 | ||
自定义转发规则 | ALB Ingress支持自定义转发规则。转发规则包含转发条件和转发动作。通过ALB Ingress您可以
重要
| ||
配置健康检查 | ALB Ingress支持通过设置注解来配置健康检查,配置项包括path/protocol/method/httpcode/timeout/interval/threshold等。 | ||
配置自动发现HTTPS证书功能 | ALB Ingress Controller提供证书自动发现功能。您需要首先在数字证书管理服务控制台创建证书,然后ALB Ingress Controller会根据Ingress中TLS配置的域名自动匹配发现证书。 | ||
配置HTTP重定向至HTTPS | ALB Ingress通过设置注解 | ||
支持HTTPS和gRPC协议 | 当前ALB Ingress后端协议支持HTTPS和gRPC协议,通过ALB Ingress只需要在注解中配置 说明 后端协议不支持修改,如果您需要变更协议,请删除重建Ingress。 | ||
支持Rewrite重写 | 当前ALB Ingress支持Rewrite重写,通过ALB Ingress只需要在注解中配置 说明
| ||
配置自定义监听端口 | 支持Ingress配置自定义监听端口。通过该方式,可以将服务同时暴露80端口和443端口。 | ||
配置转发规则优先级 | 通过配置Ingress注解可以定义ALB Ingress转发规则优先级。 说明 同一个监听内规则优先级必须唯一。 | ||
通过注解实现灰度发布 | ALB Ingress提供复杂路由处理能力,支持基于Header、Cookie以及权重的灰度发布功能。灰度发布功能可以通过设置注解来实现。 为了启用灰度发布功能,需要设置注解 | ||
通过注解实现会话保持 | ALB Ingress支持通过 | ||
指定服务器组负载均衡算法 | ALB Ingress支持通过设置Ingress注解 | ||
跨域配置 | ALB Ingress支持通过设置注解项配置跨域。 | ||
后端长链接 | 当使用短链接的方式访问后端服务器组时,每一条请求都需要经历TCP层面的建立连接和断开连接,使网络连接成为高性能系统的瓶颈。ALB支持开启后端长链接,能够极大的减少处理连接层面的资源消耗,从而大幅度提高处理性能。当前在ALB Ingress中可以通过注解 | ||
支持QPS限速 | ALB本身支持转发规则的QPS限速功能,QPS限速值取值范围为1~100000。当前在ALB Ingress只需要设置 | ||
|
|
ALB Ingress生态集成
云产品集成
云产品 | 功能 | 描述 | 文档链接 |
WAF | 为ALB Ingress开启WAF防护 | Web应用防火墙WAF(Web Application Firewall)可以为网站或App提供一站式安全防护,防止数据泄密和恶意CC攻击,阻止木马上传和网页篡改,提供虚拟补丁。当ALB Ingress开启WAF防护后,ALB实例监听的端口流量将受到Web应用安全防护。 | |
EDAS | 创建应用路由(ALB Ingress) | EDAS支持ALB Ingress应用路由,ALB Ingress基于阿里云应用型负载均衡ALB(Application Load Balancer)提供更有效的Ingress流量管理方式,同时兼容Nginx Ingress,具备处理复杂业务路由和证书自动发现的能力。 | |
SAE | 基于Ingress网关实现全链路灰度 | 您可以通过ALB Ingress网关,在不需要修改您的任何业务代码的情况下,为您的SAE应用实现全链路流量控制。 | |
ASM | 支持以Ingress方式与应用型负载均衡ALB集成。 | 阿里云服务网格(Alibaba Cloud Service Mesh,简称ASM)支持以Ingress方式与应用型负载均衡ALB(Application Load Balancer)集成,满足ALB用户使用ASM的诉求。 | |
HPA | 支持以Ingress方式与应用型负载均衡ALB集成。 | 容器水平伸缩(Horizontal Pod Autoscaler,简称 HPA)是 Kubernetes 中实现 Pod 水平自动伸缩的功能。HPA支持以Ingress方式与应用型负载均衡ALB(Application Load Balancer)集成,实现基于QPS数据的应用弹性伸缩。 | |
Knative | 支持在安装了Knative组件的ACK或ACK Serverless集群中,通过ALB来访问服务。 | Knative是一款基于Kubernetes的Serverless框架。支持通过Knative的方式配置ALB服务发现,实现Header和Cookie灰度发布功能。 |
开源产品集成
开源产品 | 功能 | 描述 | 文档链接 |
云上自建K8s | 支持在云上自建的Kubernetes集群中,通过Ingress方式使用ALB产品。 | 利用购置的ECS计算资源搭建的Kubernetes集群,可以通过Ingress的方式编排ALB路由,实现集群内服务的自动发现和负载均衡。 |