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