如何管理 Bitnami Kafka Helm 图表中的存储/持久性溢出?

如何管理 Bitnami Kafka Helm 图表中的存储/持久性溢出?

我在 AWS 上部署了使用 Terraform 预配的 Bitanmi Kafka Helm 图表。我发现文档存储和持久性分配非常令人困惑。根据我从文档中理解的内容;日志是主题中的消息块,当超过可配置的字节、消息或时间配额时,日志将被刷新到存储中的文件中。

Helm 图表状态集具有以下卷:

          volumeMounts:
            - name: data
              mountPath: {{ .Values.persistence.mountPath }}
            - name: logs
              mountPath: {{ .Values.logPersistence.mountPath }}

我已在 helm chart 中启用 logPersistence 来保留日志,除非我提供替代方案(我没有提供),否则它会保留在 Helm chart 提供的附加卷中。

如果 logPersistence 耗尽会发生什么?我可以配置故障保护吗,即配置 Kafka 保留所有内容并在超出配额时删除旧日志文件?如何检索持久化的日志?消费者是否会从早期偏移量请求主题消息并导致延迟或失败?如果是这样,有哪些恢复策略?

编辑

通过观察 Kafka pod 中的目录,我了解到

默认情况下,Bitnami Helm 图表将消息持久保存到映射到 /bitnami/kafka/data/ 目录的持久层

默认情况下,Kafka 服务器日志会发送到 stdout,并且可以配置为存储在映射到 /opt/bitnami/kafka/logs 的 logPersistence 中

这些目录自然会变满并可能导致崩溃。

我还不知道是否有可配置的 Kafka 设置来避免崩溃,即,如果存储接近耗尽则清除存储中的旧消息。

答案1

(如果不是,消息会被删除吗?)

如果您不提供该标志,日志将仅发送到标准输出。

如果 logPersistence 耗尽会发生什么?

我不确定你这是什么意思,你的意思是让卷超出空间吗?你可以使用logPersistence.size,如果超出空间,你将需要重新调整卷的大小。

如果客户端从较早的偏移量请求主题消息并导致延迟或失败,是否会发生这种情况?如果是这样,有哪些恢复策略?

你能澄清一下这个问题吗?

“持久性”/数据中保存了什么?它的使用量会增加吗?如果它增加了,我可以配置故障保险吗?

如果配置了日志,主要是为了检查它是否符合您的需要,您可以尝试部署 docker-compose 并检查容器内的目录。

如果在根磁盘上保存了任何东西会怎么样?根磁盘应该有多大?它的使用率会增加吗?我可以配置故障保护吗?

你能解释一下吗?根磁盘是什么意思?

编辑:

澄清:如果日志被刷新到存储中,消费者或消费者群体可以检索它们吗?

存储日志是为了避免在 Pod 重新启动时丢失它们。要使用这些日志,您可以使用您喜欢的方法,例如,您可以使用 Logstash。

澄清:除了以下目录之外,pod 使用本地节点存储:数据 -> /bitnami/kafka 和日志 /opt/bitnami/kafka/logs

很难预测存储的大小。这取决于存储的数据量。就日志而言,Kafka 运行的时间越长,存储的数据就越多。这也可能取决于对 Kafka 代理的请求。如果目录/bitnami/data/opt/bitnami/kafka/logs使用本地存储,我猜你正在使用任何其他类型的存储,你应该能够在需要时更新容量。

相关内容