我把卡夫卡和动物园管理员当成有状态的人,并将卡夫卡暴露在星团的外面。但是,每当我尝试删除Kafka状态集并重新创建它时,数据似乎都消失了吗? (当我尝试使用kafkacat
使用所有消息时,旧消息似乎消失了),即使它使用的是相同的PVC和PV。我目前正在使用EBS作为我的永久量。
有人可以向我解释删除有状态集时PV发生了什么吗?请帮助我。
答案 0 :(得分:1)
我可能会看一下如何创建持久卷。
如果运行命令
kubectl get pv
您会看到Reclaim policy
,如果将其设置为保留,那么即使删除有状态的集,您的卷也将保留
答案 1 :(得分:1)
这是预期的行为,因为新的statefulSet将创建一组新的PV并重新开始。 (如果没有其他选择,它也可以随机降落在旧的PV上,例如本地体积)
StatefulSet并不意味着kubernetes会记住您在其他已删除的旧statefulset中所做的事情。
Statefulset意味着,如果出于某种原因重新启动或重新创建了Pod,则会为其分配相同的卷。这并不意味着将在StatefulSet中分配该卷。
答案 2 :(得分:0)
我假设您的情况是您有一个有状态集,该状态集中有一个persistentvolumeclaim定义-或者它仅引用一个现有的卷,然后尝试删除它。
在这种情况下,持久卷将保留在那里。而且pvc不会消失;
这样,您可以根据需要将相同的卷重新安装到不同的有状态集pod上,或者对其上一个进行更新。
如果您要删除永久卷,则应删除pvc,并且随后的PV将消失。