写点什么

如何在 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 )关注我们。

2018-02-11 18:004355
用户头像

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

关注

评论

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

第八周学习性能优化 2 总结

三板斧

极客大学架构师训练营

天秀!这份由阿里数位大牛编写的777页高可用架构+MySQL

Java~~~

Java MySQL 编程语言 高并发 架构师

python+flask编写一个简单的登录接口例子

测试人生路

Python 接口测试

目标检测-框架之darknet-数据读取

Dreamer

嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?

比伯

Java spring 编程 程序员 架构

看完之后,不要再说不懂代理IP了!

前嗅大数据

大数据 静态IP 代理IP 短效代理 动态IP

架構師訓練營第 1 期 - 第 08 周作業

Panda

架構師訓練營第 1 期

Java动态修改LOGGER日志级别

Zhendong

Java Arthas

甲方日常 50

句子

工作 随笔杂谈 日常

【DevOps实践】企业应用场景众多,怎样选择合适的代码分支模型?

嘉为蓝鲸

git DevOps 软件开发 持续交付 代码管理

Reactor详解之:异常处理

程序那些事

响应式 reactor 程序那些事 响应式系统 响应式架构

前端如何一键生成多维度数据可视化分析报表

徐小夕

Java node.js 大前端 React 数据可视化

成长为软件教练的三千大道之一

华为云开发者联盟

Java 敏捷开发

一次完整的JVM堆外内存泄漏故障排查记录

Zhendong

双“11”搞促销?用贪心算法来盘他!

王磊

算法

架构师训练营 1 期 - 第八周 - 性能优化 2

三板斧

极客大学架构师训练营

如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)

徐小夕

Java node.js 大前端 React 数据可视化

LeetCode题解:剑指 Offer 22. 链表中倒数第k个节点,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

不服!阿里P8手写489页SQL优化通关手册,解决你百思不得其解问题

996小迁

sql 程序员 架构 面试 计算机

架构师训练营 1 期 -- 第八周作业

曾彪彪

极客大学架构师训练营

架构知识学习总结

小黄鱼

极客大学架构师训练营

阿里又出一座丰碑!P9级架构师整合出最新最全微服务1700页手册,下载下来慢慢啃

Java架构追梦

Java 架构 微服务 springboot SpringCloud

炸了!一口气间了我18个JVM问题!

面试 jvm调优 JVM垃圾回收原理

开源GitHub标星30K的腾讯Redis笔记,阿里技术专家看到都赞不绝口

小Q

Java 学习 编程 架构 面试

解密猫晚直播技术:如何保障全球200多个国家和地区同时在线狂欢?

阿里云CloudImagine

spring-注入配置

Isuodut

七张图了解Kubernetes内部的架构

网管

Kubernetes k8s k8s入门

关于静态分析技术符号执行,从一个故事讲起······

华为云开发者联盟

代码 分析 静态

【再见 — JVM】,需要”我”为你做些什么?

码界西柚

Java JVM Java 25 周年 1 周年盛典 InfoQ 写作平台 1 周年

技术实践丨基于MindSpore的ResNet-50蘑菇“君”的识别应用体验

华为云开发者联盟

网络 mindspore 识别推理

朋友推荐我这份阿里面试通关手册,我却选择了字节的offer

小Q

Java 学习 程序员 架构 面试

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