【问题标题】:Apache Kafka - Volume Mapping for Message Log files in Kubernetes (K8s)Apache Kafka - Kubernetes (K8s) 中消息日志文件的卷映射
【发布时间】:2019-05-28 18:06:49
【问题描述】:

当我们在 Linux/Windows 上部署 apache kafka 时,我们有 log.dirsbroker.id 属性。在裸机上,文件保存在各个主机实例上。但是,当通过 K8s 在公共云上部署时 - 必须有某种形式的卷挂载以确保事务日志文件保存在某处?

有人在 K8s 上做过这个吗?我不是指 Confluent(因为它是付费订阅)。

【问题讨论】:

  • Confluent Helm 图表不是付费解决方案。无论如何,它仍然是相同的 Apache Kafka,并且需要配置持久化卷......有些人在 k8s 中使用 OpenEBS、Portworx 或 Rook 来处理这个问题。

标签: kubernetes apache-kafka


【解决方案1】:

据我了解,您只是在问如何处理 Kubernetes 中的存储。

这是一个很棒的剪辑,我会向您推荐 Kubernetes Storage

在 Kubernetes 中,您使用的是 Volumes

Container 中的磁盘文件是短暂的,这给在 Container 中运行的重要应用程序带来了一些问题。首先,当 Container 崩溃时,kubelet 会重新启动它,但文件会丢失——Container 以干净的状态启动。其次,当在Pod 中一起运行容器时,通常需要在这些容器之间共享文件。 Kubernetes Volume 抽象解决了这两个问题。

有许多类型的卷,有些是特定于云的,例如 awsElasticBlockStore、gcePersistentDisk、azureDiskazureFile

还有其他类型,如glusterfsiscsinfs 以及更多here 列出的类型。

您还可以使用Persistent Volumes,它为用户和管理员提供了一个 API,可以从存储的使用方式中抽象出存储提供方式的详细信息:

PersistentVolume (PV) 是集群中由管理员配置的一块存储。它是集群中的资源,就像节点是集群资源一样。 PV 是与 Volumes 类似的卷插件,但其生命周期独立于使用 PV 的任何单个 pod。此 API 对象捕获存储实现的详细信息,无论是 NFS、iSCSI 还是特定于云提供商的存储系统。

PersistentVolumeClaim (PVC) 是用户的存储请求。它类似于 pod。 Pod 消耗节点资源,PVC 消耗 PV 资源。 Pod 可以请求特定级别的资源(CPU 和内存)。声明可以请求特定的大小和访问模式(例如,可以安装一次读/写或多次只读)。

这里是 Portworx Kafka Kubernetes in production: How to Run HA Kafka on Amazon EKSGKEAKS 的链接,可能对您也很方便。

如果您对性能感兴趣,那么 Kubernetes Storage Performance Comparison 是一个很棒的 10 分钟阅读。

希望这些资料能帮助你了解 Kubernetes 存储。

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多