【问题标题】:Kubernetes Volumes access modesKubernetes Volumes 访问模式
【发布时间】:2021-08-29 03:44:18
【问题描述】:

我正在深入研究 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 副本。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

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

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

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

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

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

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

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

    【讨论】:

    • 感谢 Jonas 的回答,如果我在同一个节点上运行两个 MySql pod 会怎样?
    • @Aditya 如果你想要一个分布式数据库,也许github.com/pingcap/tidb 可能适合你?
    • 不,它的同一个 mysql pod 有两个副本?
    • @Aditya 如何以分布式模式运行 MySQL?那不是两个不同的独立数据库吗?它们是否相互复制?
    • 我不知道。现在我正在使用来自 K8s 集群的 RDS AWS 使用外部名称服务。我只是想了解如果我们使用 Deployment 部署 HA Mysql pod,我的方法应该是什么?
    【解决方案2】:

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

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

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

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

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

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

    • 无法在单个节点上安排两个 pod。导致 crashloopbackoff

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

    【讨论】:

    • 您可以在同一节点上的两个 pod 中完美地运行 MySql。但不使用相同的部署。
    • 正确!我的查询使用相同的副本,它无法完成。
    • 是的,所以你的答案中写的是不正确的。
    • 我刚刚将我的问题更新为“所有人都有相同的 pod 副本”。现在我的回答有意义吗?我想我在询问时错过了这部分
    猜你喜欢
    • 2020-06-10
    • 2015-08-12
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    相关资源
    最近更新 更多