[英]Strimzi Kafka Using local Node Storage
我正在使用 strimzi 作為開發環境在 kube.netes(部署在 Azure 上)上運行 kafka,並且更願意使用內部 kube.netes 節點存儲。 如果我使用 persistant-claim 或 jbod,它會在 azure 存儲上創建標准磁盤。 但是我更喜歡使用內部節點存儲,因為那里有 16 GB 可用空間。 我不想使用 ephemeral,因為我希望數據至少保留在 kube.netes 節點上。 以下是我的 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: {}
您使用的persistent-claim
存儲將使用默認存儲 class 來配置存儲,在您的情況下,我猜它會創建標准存儲。
您有兩種選擇如何使用工作節點的本地磁盤空間:
ephemeral
類型存儲。 但請記住,這就像一個臨時目錄,它會在每次滾動更新時丟失。 此外,如果您同時刪除所有 pod,您將丟失所有數據。 因此,它僅推薦用於 CI 中的一些短期集群,也許是一些短期開發等。但肯定不適用於任何需要可靠性的地方。ephemeral
存儲不同)以可靠性和可用性使用。 本地持久卷通常也通過 StorageClass 提供 -> 因此在 Strimzi 的Kafka
自定義資源中,它仍將使用persistent-claim
類型存儲,只是存儲 class 不同。你應該真正了解你想要使用什么以及為什么。 根據我的經驗,本地持久卷是很好的選擇
但是在對高質量網絡塊存儲(例如 Amazon EBS 卷及其 Azure 或 Google 對應物)提供良好支持的公共雲中,本地存儲通常帶來的問題多於優勢,因為它如何將 Kafka 代理綁定到特定的工作節點。
可以在此處找到有關本地持久卷的更多詳細信息: https://kube.netes.io/docs/concepts/storage/volumes/#local ... 還有不同的供應商可以幫助您使用它。 我不確定 Azure 是否支持開箱即用的任何東西。
旁注:2Gi 的空間對於 Kafka 來說非常小。 不確定在磁盤空間用完之前您能做多少。 即使是 16Gi 也很小。 如果你知道自己在做什么,那很好。 但如果沒有,你應該小心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.