加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

在Kubernetes上运行Kafka吻合吗?

发布时间:2019-06-03 23:58:21 所属栏目:建站 来源:姜俊厚译
导读:先容 Kubernetes计划的初志是运行无状态事变负载。这些凡是回收微处事架构的事变负载,是轻量级,可程度扩展,遵循十二要素应用措施,可以处理赏罚环形断路和随机Monkey测试。 另一方面,Kafka本质上是一个漫衍式数据库。这意味着你必需处理赏罚状态,它比微处事更
副问题[/!--empirenews.page--]

先容

Kubernetes计划的初志是运行无状态事变负载。这些凡是回收微处事架构的事变负载,是轻量级,可程度扩展,遵循十二要素应用措施,可以处理赏罚环形断路和随机Monkey测试。

另一方面,Kafka本质上是一个漫衍式数据库。这意味着你必需处理赏罚状态,它比微处事更重量级。Kubernetes支持有状态的事变负载,但你必需审慎看待它,正如Kelsey Hightower在最近的两条推文中指出的那样:

在Kubernetes上运行Kafka吻合吗?

此刻你应该在Kubernetes上运行Kafka吗?我的反问是:没有它,Kafka会跑得更好吗?这就是为什么我要指出Kafka和Kubernetes之间的彼此增补性以及你也许碰着的陷阱。

运行时

让我们先看一下根基的对象——运行时自己。

历程

Kafka brokers对CPU很友爱。TLS也许会引入一些开销。假如Kafka客户端行使加密,则必要更多CPU,但这不会影响brokers。

内存

Kafka brokers是内存耗损大户。JVM堆凡是可以限定为4-5 GB,但因为Kafka大量行使页面缓存,因此还必要足够的体系内存。在Kubernetes中,可以响应地配置容器资源限定和哀求。

存储

容器中的存储是短暂的——重启后数据将丢失。可以对Kafka数据行使emptyDir卷,这将发生沟通的结果:brokers的数据将在停机后丢失。您的动静在其他broker上作为副本照旧可以行使的。因此,从头启动后,失败的broker必需得复制全部的数据,这也许是一个耗时进程。

这就是你应该行使耐久存储的缘故起因。行使XFS或ext4的非当地耐久性块存储更吻合。我告诫你:不要行使NFS。NFS v3和v4都不会起浸染。简而言之,Kafka broker会由于NFS“愚笨重定名”题目而无法删除数据目次,自行终止。假如你如故不信托我,那么请细心阅读这篇博文。存储必需长短当地的,以便Kubernetes在从头启动或从头定位时可以更机动地选择另一个节点。

收集

与大大都漫衍式系同一样,Kafka机能在很洪流平上取决于低收集耽误和高带宽。不要试图将全部署理放在统一节点上,由于这会低落可用性。假如Kubernetes节点呈现妨碍,那么整个Kafka集群城市呈现妨碍。不要跨数据中心扩展Kafka集群。这同样合用于Kubernetes集群。差异的可用地区是一个很好的衡量。

设置

清单

Kubernetes网站包括一个很是好的教程,先容怎样行使清单配置ZooKeeper。因为ZooKeeper是Kafka的一部门,因此可以通过这个相识哪些Kubernetes观念被应用在这里。一旦领略,您也可以对Kafka集群行使沟通的观念。

  • Pod:Pod是Kubernetes中最小的可陈设单位。它包括您的事变负载,它代表群齐集的一个历程。一个Pod包括一个或多个容器。整体中的每个ZooKeeper处事器和Kafka集群中的每个Kafka broker都将在一个单独的Pod中运行。
  • StatefulSet:StatefulSet是一个Kubernetes工具,用于处理赏罚必要和谐的多个有状态事变负载。StatefulSets担保Pod的有序性和独一性的。
  • Headless Services:处事通过逻辑名称将Pod与客户端疏散。Kubernetes认真负载均衡。可是,对付ZooKeeper和Kafka等有状态事变负载,客户端必需与特定实例举办通讯。这就是 Headless Services施展浸染的处所:作为客户端,如故可以得到逻辑名称,但不必直接会见Pod。
  • 耐久卷:如上所述,必要设置非当地耐久块存储。

Yolean提供了一套全面的清单,可以辅佐您开始行使Kubernetes上的Kafka。

Helm Charts

Helm是Kubernetes的包揽理器,相同yum,apt,Homebrew或Chocolatey等OS包揽理器。它应承您安装Helm Charts中描写的预界说软件包。全心计划的Helm Charts能简化全部参数正确设置的伟大使命,以便在Kubernetes上运行Kafka。有几张图表合用于Kafka的的可供选择:一个是处于演进状态的官方图表,一个来自Confluent,另一个来自Bitnami,仅举几例。

Operators

因为Helm的一些限定,另一种器材变得很是风行:Kubernetes Operators。Operators不只可觉得Kubernetes打包软件,还可觉得Kubernetes陈设和打点一个软件。

评价很高的Operators名单中提到Kafka有两个,个中一个是Strimzi,Strimzi使得在几分钟内启动Kafka集群变得很是轻易,险些不必要任何设置,它增进了一些大度的成果,如聚集间点对点TLS加密。Confluent还公布即将推出新的Operator。

机能

运行机能测试以对Kafka安装举办基准测试很是重要。在您碰着贫困之前,它会为您提供有关也许的瓶颈的处所。荣幸的是,Kafka已经提供了两本机能测试器材:kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh。记得常常行使它们。作为参考,可以行使Jay Kreps的博客功效,可能 Stéphane Maarek在 Amazon MSK的评述。

运维

监控

可见性很是重要,不然您将不知道产生了什么。现在,有一种不错的器材可以用云原生方法监控指标。Prometheus和Grafana是两种风行的器材。Prometheus可以直接从JMX导出器网络全部Java历程(Kafka,ZooKeeper,Kafka Connect)的指标。添加cAdvisor指标可为提供有关Kubernetes资源行使环境的其他信息。

Strimzi为Kafka提供了一个优雅的Grafana仪表板示例。它以很是直观的方法可视化要害指标,如未复制的和离线分区。它通过资源行使和机能以及不变性指标来增补这些指标。因此,可以免费得到根基的Kafka集群监控!

在Kubernetes上运行Kafka吻合吗?

资料来历:https://strimzi.io/docs/master/#kafka_dashboard

可以通过客户端监控(斲丧者和出产者指标),行使Burrow滞后监控,行使Kafka Monitor举办端到端监控,来完成这个使命

日记记录

日记记录是另一个要害部门。确保Kafka安装中的全部容器都记录到尺度输出(stdout)和尺度错误输出(stderr),并确保Kubernetes集群将全部日记聚合到中央日记记录办法中如Elasticsearch中。

康健搜查

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读