簡體   English   中英

Strimzi Kafka 使用本地節點存儲

[英]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 中的一些短期集群,也許是一些短期開發等。但肯定不適用於任何需要可靠性的地方。
  • 您可以使用本地持久卷,它們是綁定到特定節點的持久卷。 這些是持久的,因此 Pod 將在重啟和滾動更新之間重新使用卷。 但是,它將 pod 綁定到存儲所在的特定工作節點 -> 因此您無法輕松地將其重新安排到另一個工作節點。 但除了這些限制之外,如果做得好,它可以(與ephemeral存儲不同)以可靠性和可用性使用。 本地持久卷通常也通過 StorageClass 提供 -> 因此在 Strimzi 的Kafka自定義資源中,它仍將使用persistent-claim類型存儲,只是存儲 class 不同。

你應該真正了解你想要使用什么以及為什么。 根據我的經驗,本地持久卷是很好的選擇

  • 您在裸機/本地集群上運行,而這些集群通常無法使用良好的共享塊存儲
  • 當您需要最高性能時(本地存儲不依賴於.network,因此通常可以更快)

但是在對高質量網絡塊存儲(例如 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM