硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

Grab 改进 Kubernetes 集群中的 Kafka 设置,无需人工干预就可轮换 Broker 节点

作者:Rafal Gancarz

  • 2024-02-29
    北京
  • 本文字数:1150 字

    阅读完需:约 4 分钟

Grab 改进 Kubernetes 集群中的 Kafka 设置,无需人工干预就可轮换 Broker 节点

Grab 更新了其 Kubernetes 上的 Kafka 设置以提高容错性,并完全避免在 Kafka Broker 意外终止时需要进行人工干预。为解决最初设计的不足,Grab 的团队集成了 AWS 节点终止处理程序(Node Termination Handler,NTH),使用负载均衡器控制器进行目标组映射,并切换到 ELB 卷进行存储。


作为其 Coban 实时数据平台的一部分,Grab 已经在 Kubernetes (EKS) 上使用 Strimzi 在生产环境中运行 Apache Kafka 两年了。团队之前使用了 Strimzi(现已成为 CNCF 孵化项目),通过应用成熟的身份验证、授权和保密机制来提升 Kafka 集群的安全性。


除了由于维护或基础设施问题导致 AWS 意外终止 EKS 节点外,初始设置运行良好。在这种情况下,Kafka 客户端会突然遇到错误,因为 Broker 没有被优雅地降级。更糟糕的是,受影响的 Broker 实例无法在新配置的 EKS 工作节点上重新启动,因为 Kubernetes 仍然指向已经不存在的存储卷。因此,如果没有 Coban 工程师的干预,Kafka 集群将以降级状态运行,三个 Broker 节点中只有两个可用。


开发人员利用 AWS 节点终止处理程序(NTH)将对 Kafka 客户端的干扰降至最低,通过排空工作节点,使用 SIGTERM 信号触发 Kafka 进程优雅地关闭。Grab 团队选择使用队列处理器模式而不是实例元数据服务(IMDS)模式,因为它捕获了更广泛的事件集合,包括与可用区(AZ)和自动扩展组(ASG)有关的事件。



使用 AWS 节点终止处理程序(队列处理器)支持 Kafka 的优雅关闭(来源:Grab 工程博)


他们使用 AWS 负载均衡器控制器(LBC)动态映射网络负载均衡器(NLB)目标组来解决工作节点终止时网络连接中断的问题。工程师们通过增加健康检查频率并使用 Pod 就绪门(Pod Readiness Gate)控制器来配置 NLB,解决 NLB 将每个目标组标记为健康状态所需的时间过长的问题。


他们最后需要克服的一个最大的障碍是确保新配置的 Kafka 工作节点能够正确启动并访问数据存储卷。工程师们决定使用弹性块存储(EBS)卷而不是 NVMe 实例存储卷。使用 ESB 有许多好处,例如成本更低、将卷大小与实例规格解耦、更快的同步速度、快照备份以及在不停机的情况下增加容量。此外,他们将 EC2 实例类型从存储优化改为通用型或内存优化型。


通过对 Kubernetes 和 Strimzi 进行额外配置,能够在新集群上自动创建 EBS 卷,并在将 Kafka Pod 重定位到不同工作节点时在 EC2 实例之间附加 / 分离卷。



经过这些改进,EC2 实例退役以及任何需要对所有工作节点进行轮换的操作都可以在没有人工干预的情况下进行,这些操作变得更快速、更不容易出错。他们正在计划做进一步的改进,包括使用 NTH Webhook 主动启动新实例并通过 Slack 通知 NTH 发起的操作,以及推出 Karpenter,用以取代 Kubernetes Cluster Autoscaler。


查看英文原文


https://www.infoq.com/news/2024/02/grab-kafka-kubernetes-aws-nth/

2024-02-29 10:005644

评论

发布
暂无评论
发现更多内容

VPS是干嘛用的?有哪些知名牌子?与云服务器有什么区别?

行云管家

运维 等保备案 VPS

等保备案主体是谁?在当地网安进行备案是吗?

行云管家

等保 等级保护 等保备案

《数字经济全景白皮书》消费金融数字化篇 重磅发布

易观分析

消费金融

中国内地仅四家突围 联想智慧颐和园荣获 “2022年IDC亚太区智慧城市大奖”

科技大数据

人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了

OpenAnolis小助手

开源 龙蜥社区 礼品 开发者激励 贡献

太阳能无线LED显示屏的特点

Dylan

LED LED显示屏

一套十万级TPS的IM综合消息系统的架构实践与思考

JackJiang

网络编程 架构设计 即时通讯 im开发

物联网低代码平台常用《组件介绍》

AIRIOT

低代码 物联网 低代码开发平台 低代码平台 低代码,项目开发

大神详解开源 BUFF 增益攻略丨直播讲座

Apache IoTDB

开源 面试 求职 秋招 线上讲座

wallys/DR7915-wifi6-MT7915-MT7975-2T2R-support-OpenWRT-802.11AX-supporting-MiniPCIe-Module

wallys-wifi6

讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!

白鲸开源

Apache 大数据 开源 workflow dolpinsheduler

setInterval、setTimeout和requestAnimationFrame

源字节1号

软件开发

如临现场的视觉感染力,NBA决赛直播还能这样看?

阿里云CloudImagine

音视频 直播 音视频直播 直播解决方案

Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了

百思不得小赵

大数据 6月月更 flink api

2022 开源软件安全状况报告:超41%的企业对开源安全没有足够的信心

SEAL安全

DevSecOps 开源安全 软件供应链 安全左移

Java培训 动态代理的底层原理

@零度

JAVA开发 动态代理

叮!Techo Day 腾讯技术开放日如约而至!

CODING DevOps

CODING DevOps Cloud Studio Techo 腾讯技术开放日

百问百答第44期:应用性能探针监测原理-Python探针

博睿数据

APM AIOPS 智能运维 博睿数据 性能监测

《运营之光3.0》全新上市——跨越时代,自我颠覆的诚意之作!

博文视点Broadview

通过大数据培训学习后到35岁后为什么会失业

@零度

当量子计算遇上人工智能

启科量子开发者官方号

人工智能 算力 量子计算

2022中国信通院首届业务与应用安全发展论坛成功召开!

中国IDC圈

layui-vue简单体验

Python研究所

6月月更

易观分析《2022年中国银行业隐私计算平台供应商实力矩阵分析》研究报告正式启动

易观分析

银行技术

LSF 集群全面监控!浅析 HPC 基于龙蜥操作系统的迁移替代解决方案

OpenAnolis小助手

开源 解决方案 龙蜥操作系统 常青藤开源科技 HPCinsights

TiDB v6.0.0 (DMR) :缓存表初试丨TiDB Book Rush

PingCAP

TiDB

web前端培训Node.js 如何连接到 PostgreSQL 数据库

@零度

node.js 前端开发

智联招聘基于 Nebula Graph 的推荐实践分享

NebulaGraph

知识图谱 Nebula Graph

百度APP 基于Pipeline as Code的持续集成实践

百度Geek说

Java’

小白创业做电商,选对商城系统很重要!

CRMEB

行业分析| 快对讲,楼宇对讲

anyRTC开发者

音视频 快对讲 语音对讲 视频对讲 楼宇对讲

Grab 改进 Kubernetes 集群中的 Kafka 设置,无需人工干预就可轮换 Broker 节点_AI&大模型_InfoQ精选文章