我在kubernetes上运行kafka (部署在Azure上),使用strimzi作为开发环境,我更喜欢使用内部kubernetes节点存储。如果我使用persistant claim,它会在天蓝色存储上创建标准磁盘。然而,我更喜欢使用内部节点存储,因为我在那里有16 gb可用。我不想使用短暂的数据,因为我希望数据被持久化,至少在kubernetes节点上。折叠是我的deployment.yml
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: kafka-cluster
spec:
kafka:
version: 3.1.0
replicas: 2
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
- name: external
type: loadbalancer
tls: false
port: 9094
config:
offsets.topic.replication.factor: 2
transaction.state.log.replication.factor: 2
transaction.state.log.min.isr: 2
default.replication.factor: 2
min.insync.replicas: 2
inter.broker.protocol.version: "3.1"
storage:
type: persistent-claim
size : 2Gi
deleteClaim: false
zookeeper:
replicas: 2
storage:
type: persistent-claim
size: 2Gi
deleteClaim: false
entityOperator:
topicOperator: {}
userOperator: {}发布于 2022-03-01 16:14:24
当您使用persistent-claim存储时,它将使用默认存储类提供存储,在您的情况下,这将创建标准存储。
如何使用工作者节点的本地磁盘空间有两个选项:
ephemeral类型存储。但请记住,这是一个临时目录,它将丢失在每一个滚动更新。另外,如果你同时删除所有的豆荚,你将失去所有的数据。因此,它只推荐用于CI中的一些短暂的集群,可能是一些短暂的开发等等。但是对于任何您需要的东西,reliability.ephemeral存储)的可靠性和可用性。本地持久卷通常是通过StorageClass以及->提供的,因此在Kafka自定义资源中,它仍然将使用persistent-claim类型的存储,只是使用不同的存储类。你真的应该知道你到底想用什么和为什么。根据我的经验,本地持久卷是很好的选择
在通常良好的共享块存储不是available
但在支持高质量网络块存储(如亚马逊EBS卷及其Azure或谷歌版本)的公共云中,本地存储常常带来更多的问题,而不是优势,因为它如何将Kafka经纪商限制在特定的员工节点上。
有关本地持久卷的更多细节可以在这里找到:https://kubernetes.io/docs/concepts/storage/volumes/#local .也有不同的供给者可以帮助你使用它。我不确定Azure是否支持任何现成的东西。
Sidenote: 2 2Gi的空间对于卡夫卡来说非常小。不确定在耗尽磁盘空间之前能够做多少事情。即使是16 be也会很小。如果你知道你在做什么,那就好。但如果不是,你应该小心点。
https://stackoverflow.com/questions/71309826
复制相似问题