alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!

简介: alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!

引言

ALB Ingress作为阿里云官方推荐的云原生Ingress网关解决方案,已在包括阿里云容器服务ACK和ACK Serverless在内的多个Kubernetes部署场景中广泛应用。


为更好地服务于在阿里云上自建Kubernetes集群的用户,帮助用户更方便快捷地利用ALB产品的优势,阿里云网络基于ALB Ingress Controller商业版特性,推出了开源版本的alibaba-load-balancer-controller。自alibaba-load-balancer-controller v1.1.2发布以来,阿里云网络不断收集到来自用户的反馈及新的市场需求,在此基础上持续迭代产品,正式推出全新开源版本 alibaba-load-balancer-controller v1.2.0,能力对齐阿里云洛神云网络ALB Ingress Controller商业版v2.10.0


  — 功能革新、体验升级与最佳实践 —  

alibaba-load-balancer-controller v1.2.0在产品功能拓展、用户体验提升以及稳定性保障等方面均做出了显著改进。同时,云网络积极响应用户需求,持续针对高使用率场景推出最佳实践方案,助力用户高效快捷地掌握ALB Ingress在不同业务场景下的配置与使用。



|| 功能特性,强大而全面  


相较于 alibaba-load-balancer-controller v1.1.0, 在最新推出的 v1.2.0 版本中,阿里云网络产品团队紧紧围绕云原生场景下客户的重点需求进行了深入的优化和创新,对实例管理、监听机制、转发规则、服务器组以及安全管理等关键部分进行了全面升级,力求不断丰富产品功能特性,包括:


  • 新增更多定制化选项,如自定义标签、资源组指定
  • 新增监听支持QUIC协议
  • 新增转发条件支持匹配自定义header、cookie、支持path字段的正则匹配;转发动作支持跨域、流量镜像以及更多自定义action
  • 新增支持ACL,并提供基于ACL ID和ACL Entry的管理方式
  • 新增支持secret证书


|| 体验优化,简单而专业  

在alibaba-load-balancer-controller v1.2.0中,阿里云网络产品团队还重点进行了开发使用的体验优化,包括


  • 优化Event通知机制、异常事件反馈和调谐流程等,有助于开发者更快地定位和解决问题,开发者可以通过kubectl describe ingress <name> -n <namespace>查看异常事件报出。
  • 优化Ingress资源的无阻塞删除、监听错误隔离等,不同监听之间的异常事件不再互相阻塞,有助于开发者降低运维复杂度和成本。
  • 优化异步调用API、资源哈希等,提升响应速度并避免了预期外调谐行为。


|| 最佳实践,简明而高效  


<如何实现混合挂载、跨地域挂载和本地IDC挂载_容器服务 Kubernetes 版 ACK(ACK)-阿里云帮助中心> 等最佳实践推出以来不断收获积极反馈,这也推动我们我们不断探索和总结,推出一系列新的最佳实践:


实践1:使用ReadinessGate实现ALB Ingress后端Pod滚动升级时平滑上线


在Pod上线阶段,需要确保Pod在接收流量之前真正达到可服务状态,开发者可以通过配置ReadinessGate来保证Pod上线阶段的可用性。ALB Ingress Controller支持启用ReadinessGate功能,持续监控ACK集群Pod的状态,等待Pod状态变为可用状态后再将完全启动的Pod挂载到后端服务器组,并向该Pod转发流量。


通过在Deployment中配置ReadinessGate自定义Condition:target-health.alb.k8s.alibabacloud,使ACK集群持续监控Pod的状态,直到状态为可用状态才认为Pod已经启动并挂载到后端服务器组上:


apiVersion: apps/v1
kind: Deployment
metadata: 
name: tea
spec: 
replicas: 3 
selector:  
matchLabels:  
app: tea 
template: 
metadata:     
labels:      
app: tea
spec:    
containers:    
- name: tea       
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest  
ports:    
- containerPort: 80
# 配置readinessGate  
readinessGates:     
- conditionType: target-health.alb.k8s.alibabacloud
---
apiVersion: v1
kind: Service
metadata:  
name: tea-svc
spec:  
ports: 
- port: 80  
targetPort: 80  
protocol: TCP 
selector:  
app: tea  
type: NodePort

执行以下命令,检查ReadinessGate配置是否生效:


kubectl get pods -o yaml |grep 'target-health'


预期输出_


-conditionType:target-health.alb.k8s.alibabacloud
message:correspondingconditionofpodreadinessgate"target-health.alb.k8s.alibabacLoud"

实践2:使用Prestop实现ALB Ingress后端Pod滚动升级时平滑下线

在使用Pod节点作为应用承载平台时,对应用重新部署或对Deployment中Image镜像地址进行修改,会触发Kubernetes滚动更新,旧的Pod会终止服务,新的Pod节点会部署。在Pod滚动升级过程中如果旧的Pod没有平滑退出,会导致应用无法关闭业务请求,访问出现大量404/502状态码,影响业务持续性。通过为Pod设置平滑退出机制,能够保证流量停止/ALB Ingress Controller将Pod从后端服务器组移除后再平滑下线Pod,保证滚动升级过程中流量不中断。


开发者可通过在应用Deployment中添加preStopHook使kubelet等待指定时间后再向Pod发送SIGTERM信号,并修改终止 terminationGracePeriodSeconds时间,以实现平滑下线:


...
spec:
containers:      
lifecycle:      
preStop:          
exec:            
command:
# 设置pre Stop Hook函数,使kube-apiserver等待10s     
- /bin/sh    
- -c         
- "sleep 10"
# 设置Pod删除宽限期  
terminationGracePeriodSeconds: 45
...

应用Deployment中添加preStopHook并修改terminationGracePeriodSeconds后,持续访问业务,在此期间重新部署应用,实现Pod滚动升级,测试验证平滑下线的有效性。测试脚本示例如下:


#!/bin/bash
HOST="demo.ingress.top"
DNS="alb-kwha5cxwhuiis****.cn-beijing.alb.aliyuncs.com"
printf "Response Code|| TIME \n" >> log.txt

while true
do  
curl -H Host:$HOST  -s -o /dev/null -w "%{http_code}  " -m 1  http://$DNS/ >> log.txt 
date +%Y-%m-%d_%H:%M:%S >> log.txt
sleep 1
done

预期测试结果_:

  • 初始阶段应用副本数为3



  • 在重新部署应用时,新Pod创建阶段由于新Pod没有就绪,旧Pod仍在提供服务,会同时运行新旧两个Pod



  • 新Pod就绪且成功挂载至ALB后端服务器组上后,才会终止对应的旧Pod



  • 所有旧Pod完成preStopHooks函数或超出terminationGracePeriodSeconds超时时间后,kubectl会

向container发送信号终止旧的Pod,滚动更新完成



  • 检查滚动更新过程中请求的状态码,可以看到状态码全部为200,更新过程没有中断


 开启探索  

 尽在 alibaba-load-balancer-controller v1.2.0  

即刻启动 Kubernetes 集群,尝试 alibaba-load-balancer-controller v1.2.0 版本,感受云原生开源网关的新高度。


开源地址:https://github.com/alibaba/alibaba-load-balancer-controller,在这里您可以找到详尽的文档和完整的使用指南,协助您轻松上手。

  1. 您可以自行构建镜像,也可以在 Docker Hub 拉取我们提供的官方镜像,部署至您的 Kubernetes 集群。


构建镜像:https://github.com/alibaba/alibaba-load-balancer-controller/blob/v1.2.0/docs/dev.md


Docker Hub 拉取镜像:docker pull alibabacloudslb/alibaba-load-balancer-controller:v1.2.0


  1. 我们的入门指南将引导您创建 AlbConfig、IngressClass 及 Ingress 资源。这是尝试使用 ALB Ingress 将流量路由至后端服务的最佳实践。


入门指南和资源创建:https://github.com/alibaba/alibaba-load-balancer-controller/blob/main/docs/getting-started.md


  1. 通过配置词典全面了解如何定义自己的转发规则,优化您的服务流量分发,以满足具体业务需求。


配置词典:https://github.com/alibaba/alibaba-load-balancer-controller/blob/v1.2.0/docs/usage.md


  1. 更多使用指南及配置样例,您可以参考官方文档ALB Ingress功能操作指导。官方文档:


https://help.aliyun.com/zh/slb/application-load-balancer/user-guide/functions-and-features-of-alb-ingresses?spm=a2c4g.11186623.0.0.16266127az0tB3


 — 携手成长,共创辉煌未来 —  

alibaba-load-balancer-controller v1.2.0 的发布,标志着阿里云网络对客户承诺的持续兑现和对产品卓越追求的不懈努力。alibaba-load-balancer-controller期望成为开发者可靠的伙伴,为开发者和企业的云原生应用保驾护航!


如果您在使用过程中遇到任何问题或对阿里云网络产品改进有任何建议,欢迎访问阿里云网络产品社区或联系技术支持团队,也欢迎您创建issue与我们进行交流:https://github.com/alibaba/alibaba-load-balancer-controller/issues

相关文章
|
2月前
|
运维 NoSQL Serverless
|
3月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2025 年 6 月产品动态
微服务引擎 MSE 及云原生 API 网关 2025 年 6 月产品动态
|
2月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
|
6月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2025 年 3 月产品动态
微服务引擎 MSE 及云原生 API 网关 2025 年 3 月产品动态
|
7月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2025 年 2 月产品动态
微服务引擎 MSE 及云原生 API 网关 2025 年 2 月产品动态
|
3月前
|
运维 Prometheus 监控
云原生 API 网关 x OKG:游戏连接治理的「最后一公里」
本文介绍了云原生技术在游戏连接治理中的应用,重点探讨了如何通过 OpenKruiseGame(OKG)与云原生 API 网关的结合,实现游戏服务的优雅下线与无感配置变更。文章分析了游戏服务的强状态特性所带来的挑战,并提出了基于状态感知与连接管理的解决方案,保障玩家会话的连续性与体验的稳定性。同时,还介绍了如何通过零改造接入、全栈可观测性与简化的 API 治理,缩短游戏服务云原生化的“最后一公里”。
168 3
|
3月前
|
数据采集 人工智能 监控
MyEMS 开源能源管理系统后台配置指南 —— 网关管理模块详解
开源能源管控系统面向建筑、工厂等场景的开源能源管理系统,支持电、水、气等数据采集与智能分析,并提供光伏监控、储能管理等功能模块。系统具备完善的网关管理功能,包括网关查看、添加、编辑、删除及批量操作,助力用户高效实现全链路能源管理。
155 1
|
5月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
阿里云微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
|
5月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
280 3

热门文章

最新文章