kubernetes - kubernetes statefulsets:节点在同一节点上重新启动后是否看到相同的持久卷
问题描述
我正在阅读Kubernetes 的本地存储设计。它有一个部分用于distributed database
db 自行复制数据的位置。
我的问题是,如果 db 的任何进程出现故障,它会在同一节点/机器上重新启动吗?我认为是的。
如果是,它是否可以访问local storage
它在崩溃之前拥有的它?
我读过一篇关于它何时处于测试阶段的旧文章。stateful sets
文章当时不鼓励使用本地存储。
我是 Kubernetes 新手,所以请回答这个问题,并提供一些新的需要理解的更多信息。
解决方案
在本地存储设计中,您可以在此处阅读,它与有状态集一起使用。因此,例如,如果您想要三个名为 mongodb 的 mongodb 实例,那么 k8s 将为您创建三个 pod:
- mongodb-1
- mongodb-2
- MongoDB-3
如果 mongodb-2 失败,k8s 将使用相同的本地存储或持久卷重新启动它。如果你增加副本的数量,那么 k8s 会通过你的 persistentVolumeClaimTemplate 创建新的持久化卷。如果您将其缩小到两个,那么这些新创建的卷将不会被删除并将被使用,您将返回到之前的副本数量。
如果您的持久卷绑定到特定节点,那么 k8s 将知道在该节点上创建您的 pod。
您可以在此处阅读有关 mongodb 集群 statefulset 示例:https ://kubernetes.io/blog/2017/01/running-mongodb-on-kubernetes-with-statefulsets
或者您可以在这里查看精彩的演讲(带有演示): https ://www.youtube.com/watch?v=m8anzXcP-J8&feature=youtu.be
状态集和本地存储的使用得到了很好的解释。
推荐阅读
- ffmpeg - avformat_open_input() 无法打开 url
- machine-learning - 没有从图像中获取印地语文本
- javascript - 如何在 JSS 格式上编写多个 CSS 属性?
- ruby - 使用 Ruby Faraday OpenSSL PKCS12 的 POST 请求
- hadoop - 为嵌套的 CSV 数据创建 Hive 表
- nginx - nginx 在其他 server_name 处返回 200
- javascript - 我已经安装了 jasmine 但测试无法运行总是说没有找到规格
- css - css中的浮动错误
- google-chrome - 用于 chrome 模拟设备的 OnePlus 3 和 Oneplus 5 视口大小
- java - 字段@Inject 在 Dagger2 中不起作用