<p>I have a question about Kubernetes StorageClasses...</p>
<p>I am planning to install a Kafka Cluster to K8s with the help of the Confluent Helm Charts...</p>
<p><a href="https://github.com/confluentinc/cp-helm-charts" rel="nofollow noreferrer">Confluent Kafka Helm Charts</a></p>
<p>What I am not so sure about there how the StorageClasses in K8s functions, lets say I have Cluster with 3 Broker Instances, if I read the Helm charts correctly I can only configure one single StorageClass for the their StatefulSet Configuration and values.yaml</p>
<p><a href="https://github.com/confluentinc/cp-helm-charts/blob/master/values.yaml" rel="nofollow noreferrer">values.yaml</a></p>
<pre><code>persistence:
enabled: true
storageClass: &quot;kafka-storageclass&quot;
size: 50Gi
disksPerBroker: 1
</code></pre>
<p>Now I am not exactly sure how the Storage Class functions (I will probably use an Azure Disk) but my question is, if I only able to configure one StorageClass, will my all my 3 brokers will use same Phyical Disk? That is one scenario that I will definetely will try to evade.</p>
<p>I don't want that my Broker Instances fighting each other for Disk IO...</p>
<p>If my assumption is correct how can I configure my helm charts to use different StorageClass for every instance (please consider that I can have today 3 instances but if the need arises I can have 20 Broker Instances also).</p>
<p>And there is also the additional paramter 'disksPerBroker', which I can't imagine which advantage it can have in K8s environment?</p>
<p>Thx for answers...</p>

posthumecaver
<p>A storage-class defines how a unit of storage is dynamically created. Usually, you have some pre-created storage-classes with specific guaranteed performance (i.e. standard, premium). You need to find out the details in your cloud provider's documentation.</p>
<p>That said, with Apache Kafka you need to use block-storage, because good latency is required. Both Azure Managed Disks and AWS EBS are known to work well. You can think about them as they were dedicated local disks. To avoid imbalances, you should always use the same storage-class across all your brokers.</p>
<p>The <code>disksPerBroker</code> property is used to determine the number of disks attached to every single broker (JBOD). This is more about the flexibility to increase/descrease the amount of storage available to each broker, rather than performance.</p>
