我正在阅读kubernetes local storage design。它有一个 @{
int i = 0;
foreach (var item in medProviders)
{
<tr class="sortList" style="cursor:pointer" id="increment-@i" data-id="@item.Id" data-lat="@item.Latitude" data-long="@item.Longitude">
<td>
@item.Firstname
<br>*ABR</br>
</td>
<td id="distance-@i"></td>
<td id="duration-@i"></td>
</tr>
i++;
}
}
</tbody>
部分,其中db自己复制数据。
我的问题是,如果db的任何进程出现故障,是否会在同一节点/机器上重新启动?我认为这是肯定的。
如果是,是否可以访问崩溃之前的distributed database
?
我在阅读测试版时看到older article关于local storage
的信息。该文章当时并没有鼓励使用本地存储。
我是Kubernetes的新手,所以请回答这个问题,提供一些新的理解需求的信息。
答案 0 :(得分:1)
在本地存储设计中,您可以阅读here,它与状态集一起使用。因此,例如,如果你想要三个名为mongodb的mongodb实例,那么k8s将为你创建三个pod:
如果mongodb-2失败,则k8s将使用相同的本地存储或持久卷重新启动它。 如果增加副本数,则k8将通过persistentVolumeClaimTemplate创建新的持久卷。如果将它缩小到两个,那么新创建的卷将不会被删除并将被使用,您将返回到之前的副本数量。
如果您的持久卷绑定到特定节点,那么k8s将知道在该节点上创建您的pod。
您可以在此处阅读有关mongodb群集状态设置示例:https://kubernetes.io/blog/2017/01/running-mongodb-on-kubernetes-with-statefulsets
或者您可以在这里查看精彩的演讲(演示): https://www.youtube.com/watch?v=m8anzXcP-J8&feature=youtu.be
很好地解释了有状态集和本地存储的使用。