武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

如何在 Kubernetes 中管理和操作 Kafka 集群

  • 2018-02-11
  • 本文字数:1235 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Amadeus 公司平台解决方案架构师 Nenad Bogojevic 最近在北美 2017 KubeCon 和 CloudNativeCon 谈到如何在 Kubernetes 环境中运行和管理 Kafka 集群。

该公司将 Kafka 用于日志和事件收集以及作为流媒体平台。Kafka 集群中的每一个代理 (broker) 都有一个身份,这个身份可以被用来寻找集群中的其他代理。代理同样需要一个数据库来存储分区日志。所以为 Kafka 配置一个持久卷非常重要,否则你便会丢失日志。

Nenad Bogojevic 谈到如何使用 Kubernetes ConfigMap CustomResource 来分配和配置 Kafka 集群,并用它们来描述参数,比如名称、分区数、复制因子和主题 (topic) 属性如保存时间(以毫秒表示)等。它们能够帮助自动化主题的分配或反分配过程。它们同样能够确保开发和运营阶段以及集群重启时的配置一致性。

Bogojevic 还谈到了如何使用 Kubernetes StatefulSet 特性来设置 Kafka 和 ZooKeeper 集群元素。Kubernetes StatefulSet 特性提供了如下能力:

  • 稳定的 pod 身份
  • 稳定的存储
  • 有秩序的启动和关闭
  • 滚动更新

他们的解决方案架构包括 Kafka 和 ZooKeeper Statefulset,其中 Statefulset 是作为一个无头服务 (Headless Service) 被运行的。同样,该架构还包括一个发现服务,客户端应用用它来发现集群中的 Kafka 节点。他谈到了节点选择器,它可以被用来在配置较好硬件(如SSD)的机器上安装实例,以及反关联特性,它可以被用来将实例分布到不同的物理机上。

他们的架构还有一个重要的组件,那就是Kubernetes 的监控,监控组件可以被用来检测某个服务器是否准备就绪,并可以接受连接。监控是由 JMX Prometheus 这 2 个工具完成的。

Bogojevic 讨论了 Kafka 操作算子,它可以被用来将站点可靠性工程师 (SRE) 和运营团队的领域知识转换成可执行的代码。他们将操作算子用于以下的组件:

  • Prometheus
  • Redis 集群
  • 工作流
  • Kafka

使用自动化脚本来创建 Kafka 主题是非常好的实践。信息传送解决方案应该考虑采用“主题即代码”的方法。在操作 Kafka 集群主题时的最佳实践不止这些,还包括:

  • 确保主题存在于目标环境中
  • 确保主题在不再使用时被删除
  • 在不同的环境中采用同样的配置。
  • 根据可用的磁盘空间来配置保存时间
  • 为客户端配置证书
  • 将配置和需求作为代码来交付

在演讲结尾,Bogojevic 谈到了执行 Kafka 升级的一些最佳实践,包括:将协议版本设置为目前的、一次只升级一个 Kafka 代理,然后才将协议版本设置为最新的。关于存储格式的最佳实践是,首先让客户使用最新的版本,然后再将格式版本升级为最新的。

你可以在 CNCF YouTube 频道上找到 Bogojevic 名为“ Kafka 操作算子:如何在 Kubernetes 中管理和操作 Kafka 集群”的演讲视频。

查看英文原文 Managing and Operating Kafka Clusters in Kubernetes


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-02-11 18:003518
用户头像

发布了 34 篇内容, 共 18.5 次阅读, 收获喜欢 47 次。

关注

评论

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

Flutter的整体架构

Geek_99967b

小程序 小程序容器

跨平台方案的比较

Geek_99967b

小程序 小程序容器

Flutter 利用 Redux 中间件完成购物清单离线存储

岛上码农

flutter ios 前端 安卓开发 6月月更

LabVIEW控制Arduino采集热电偶温度数值(进阶篇—2)

不脱发的程序猿

单片机 LabVIEW Arduino VISA 采集热电偶温度数值

理解 Java 中的 NumberFormatException 异常

HoneyMoose

this和super的用法与区别

写代码两年半

继承 super javase this 6月月更

面试官:执行一条 SQL 语句,期间会发生什么?

Java全栈架构师

Java MySQL 数据库 程序员 面试

Disruptor 高性能堆内队列 系列一

Nick

Java Disruptor 队列 高性能 6月月更

linux中删除特殊文件

入门小站

Linux

如何写好技术博客

卢卡多多

技术 博客 6月月更

leetcode 51. N-Queens N 皇后(困难)

okokabcd

LeetCode 搜索 算法与数据结构

大家的 Hexo 博客都还好吗?

jrwng

Hexo

Hexo + Github从零搭建个人博客

梁歪歪 ♚

Hexo 博客搭建

每日一题 | LeetCode 1 两数之和

武师叔

Python 算法 JAV A Leet Code 6月月更

scp 高效操作之避免 zsh 路径展开

Nick

Linux zsh 6月月更 高效操作 scp

使用IDE并不是懒癌表现

Geek_99967b

小程序 小程序容器

红利、辛苦钱、利润和工资【读书笔记】

FunTester

InfoQ 极客传媒 15 周年庆征文|聊聊 Kafka:Kafka 如何保证一致性

老周聊架构

kafka 架构 云原生 6月月更 InfoQ极客传媒15周年庆

答应我:监听日志文件变化的这三种方法你一定要会!推荐第三种!

Java全栈架构师

Java 程序员 面试 IDEA 代码人生

5分钟了解SDN控制平面

穿过生命散发芬芳

SDN网络 6月月更

阿里6月终于有HC了!耗时两月足足面试13轮成功入职阿里!拿到32*15Offer

Java全栈架构师

Java spring 程序员 面试 程序人生

过去一周区块链热点回顾|BAYC项目具有被无限铸币的风险

区块链前沿News

Hoo

华为云AppCube带你5分钟开发微信小程序

乌龟哥哥

6月月更

数据类型

Jason199

js 数据类型 6月月更

在线JADE转HTML工具

入门小站

工具

深入浅出-如何安全的传输密码

梁歪歪 ♚

加密

让开发效率飞速提升的跨端开发神器

Geek_99967b

小程序 小程序容器

企业网站如何快速被搜索引擎收录

源字节1号

互联网电商项目天花板,从立项到交付快速落地,真正帮你解决大型互联网项目经验欠缺的短板

Java全栈架构师

程序员 面试 项目 架构设计 程序员进阶

运维服务体系构建

阿泽🧸

运维体系 6月月更

在线文本右边批量删除字符工具

入门小站

工具

如何在Kubernetes中管理和操作Kafka集群_大数据_Srini Penchikala_InfoQ精选文章