Kubernetes StorageClass与卡夫卡

Kubernetes StorageClass与卡夫卡,kubernetes,apache-kafka,kubernetes-helm,confluent-platform,Kubernetes,Apache Kafka,Kubernetes Helm,Confluent Platform,我有一个关于Kubernetes StorageClass的问题 我计划在汇合头盔图表的帮助下,在K8s上安装一个卡夫卡集群 关于K8s中的StorageClass如何工作,我不太确定的是,假设我有一个带有3个代理实例的集群,如果我正确阅读Helm图表,我只能为它们的StatefulSet配置和值配置一个StorageClass.yaml 现在我不确定存储类如何工作(我可能会使用Azure磁盘),但我的问题是,如果我只能配置一个StorageClass,我的所有3个代理是否都将使用相同的物理

我有一个关于Kubernetes StorageClass的问题

我计划在汇合头盔图表的帮助下,在K8s上安装一个卡夫卡集群

关于K8s中的StorageClass如何工作,我不太确定的是,假设我有一个带有3个代理实例的集群,如果我正确阅读Helm图表,我只能为它们的StatefulSet配置和值配置一个StorageClass.yaml

现在我不确定存储类如何工作(我可能会使用Azure磁盘),但我的问题是,如果我只能配置一个StorageClass,我的所有3个代理是否都将使用相同的物理磁盘?这是一个我肯定会试图回避的情况

我不希望我的代理实例为了磁盘IO而互相争斗

< P>如果我的假设是正确的,我如何配置我的Helm图表来为每个实例使用不同的StorageClass(请考虑我今天可以有3个实例,但是如果有需要,我也可以有20个代理实例)。 还有另外一个参数“disksPerBroker”,我无法想象它在K8s环境中有什么优势


Thx for answers…

存储类定义如何动态创建存储单元。通常,您有一些预先创建的具有特定性能保证的存储类(即标准、高级)。您需要在云提供商的文档中找到详细信息

也就是说,对于ApacheKafka,您需要使用块存储,因为需要良好的延迟。Azure托管磁盘和AWS EBS都工作良好。您可以将它们视为专用本地磁盘。为了避免不平衡,您应该在所有代理中始终使用相同的存储类

disksPerBroker
属性用于确定连接到每个代理(JBOD)的磁盘数量。这更多的是增加/减少每个代理可用存储量的灵活性,而不是性能

persistence:
enabled: true
storageClass: "kafka-storageclass"
size: 50Gi
disksPerBroker: 1