Kubernetes卷访问模式



我正在深入研究K8s卷,其中一个概念把我搞砸了。如果有人能给我解释一下就太好了。这些是K8s卷中的模式。

ReadWriteOnce--卷可以通过单节点以读写方式装载

ReadOnlyMany--卷可以由许多节点以只读方式装入

ReadWriteMany--卷可以由多个节点以读写方式装载

  1. 如果我在同一个节点上运行两个mysql pod,并且模式是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

  2. 如果我在两个不同的节点上运行两个mysql pod,并且模式是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

  3. 如果我在同一个节点上运行两个mysql pod,并且模式是ReadWriteMany,该怎么办?我的两个pod将如何书写?

  4. 如果我在两个不同的节点上运行两个mysql pod,并且模式是ReadWriteMany,该怎么办?我的两个pod将如何书写?

所有的pod都有相同的副本。

如果我在同一个节点上运行两个mysql pod,并且节点是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

如果在Pods中运行两个DBMS系统(例如MySQL或PostgreSQL(,它们都是独立的,并且应该有两个独立的PersistentVolumeClaims。仅出于测试目的运行单节点DBMS。对于生产,请考虑复制数据的分布式数据库

如果我在两个不同的节点上运行两个mysql pod,并且节点是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

正如我上面建议的那样,两者应该是独立的(除非你使用像cockratchDB这样的分布式数据库(,所以在不同的节点上运行是完全可以的。

如果我在同一个不同的节点上运行两个mysql pod,并且节点是ReadWriteMany,该怎么办?我的两个pod将如何书写?

MySQL是一个单节点DBMS系统,除非运行集群系统,否则不应与其他实例共享卷/文件。

如果我在两个不同的节点上运行两个mysql pod,并且节点是ReadWriteMany,该怎么办?我的两个pod将如何书写?

与上述相同,单节点系统不应共享卷/文件。

刚刚探索和实现,获得的信息很少,感谢@jonas

如果我在同一个节点上运行两个mysql pod,并且模式是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

  • 我们不能在同一个节点上调度两个mysql pod,这将导致crashloopbackoff

如果我在两个不同的节点上运行两个mysql pod,并且模式是ReadWriteOnce,该怎么办?我的两个pod将如何书写?

  • 由于模式为ReadWriteOnce,因此数据将仅由一个节点中的一个pod根据顺序写入

如果我在同一个节点上运行两个mysql pod,并且模式是ReadWriteMany,该怎么办?我的两个pod将如何书写?

  • 无法在单个节点上调度两个pod。导致crashloopbackoff

如果我在两个不同的节点上运行两个mysql pod,并且模式是ReadWriteMany,该怎么办?我的两个pod将如何书写?

  • 在AWS或类似共享卷的网络连接存储的情况下,需要使用EFS CSI驱动程序。查看此链接Kubernetes PVC与AWS上的ReadWriteMany

最新更新