【问题标题】:How kubernetes service work in case of Database (mysql)?在数据库(mysql)的情况下,kubernetes 服务如何工作?
【发布时间】:2020-03-10 13:06:59
【问题描述】:

我是 k8 新手,我想创建一个 mysql k8 服务。

所以我的问题是,如果我创建一个具有多个具有 mysql 数据库的 Pod 的 k8 服务,数据将如何插入以及如何处理 fetch 请求?

  • 所有的记录会同步到所有的 Pod 吗?
  • 在获取时会收集所有 pod 的记录吗?

经过一点谷歌搜索后,我才知道后台正在发生一些负载平衡...所以假设是否将记录保存到 pod1 中的 mysql 数据库和 http get 请求会去 pod2 获取记录吗?

那么这样的事情将如何锻炼?

【问题讨论】:

  • Kubernetes 对此一无所知。如果您有多个 MySQL pod,它们前面有一个服务,它会将请求路由到其中一个,并由数据库从那里解决。 (总是“Kubernetes”或“k8s”,以“s”结尾。)
  • 好的,谢谢@DavidMaze ...我听说过 mongodb 分片..所以如果 k8s 根据扩展标准创建一个新 pod,它会如何工作?

标签: mysql node.js docker database-design kubernetes


【解决方案1】:

您应该为此使用StatefulSet。状态集包括使用内部 DNS 指定要通过服务访问的 pod 的能力。使用名为 mysql 的 statefulset 的示例在默认命名空间中使用名为 mysql 的服务公开,您可以使用 mysql-0.mysql.default.svc.cluster.local

实际上在 kubernetes.io 上有一个statefulset example 专门使用 mysql。此示例利用 statefulset 的属性来确保 pod-0 将成为您的主设备,因此您可以可靠地向它发送写入并将读取请求发送到其中一个只读服务器。

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多