【问题标题】:Autoscale volume and pods simultaneously (Kubernetes)同时自动缩放卷和 Pod (Kubernetes)
【发布时间】:2017-05-20 16:01:54
【问题描述】:

我正在使用具有持久卷的 Kubernetes 部署来运行我的应用程序,例如这个示例; https://github.com/kubernetes/kubernetes/tree/master/examples/mysql-wordpress-pd ,但是当我尝试添加更多副本或自动缩放时,所有新 pod 都会尝试连接到同一个卷。 如何同时为每个新 pod 自动创建新卷,就像 statefulsets(petsets) 一样。

【问题讨论】:

  • PetSets(或 Kubernetes 1.5 中的 StatefulSets)就是为了解决这个问题而设计的……为什么不用它们呢?
  • 我只是想知道是否可以使用“部署”来完成它并使用“volumeClaimTemplates”之类的东西来自动生成 PetSets/StatefulSets 正在使用的新卷
  • @monatich,你不能用部署做到这一点。部署管理用于无状态应用程序的副本集,这些应用程序通常不需要访问自己的特定存储。正确的解决方案是一个 StatefulSet,或者多个连接到自己存储的 ReplicaSet。
  • 谢谢,我要使用 StatefulSets

标签: docker kubernetes google-cloud-platform google-kubernetes-engine


【解决方案1】:

我对 K8S 1.6 得出的结论是你不能。但是,您可以使用 NFS。如果像 CrateDB 一样,您的集群可以为卷挂载下的每个节点创建一个文件夹,那么您可以自动扩展。因此,我使用此配置将 CrateDB 自动扩展为部署:

https://github.com/erik777/kubernetes-cratedb

它依赖于一个 nfs 服务器,我将它部署为一个带有 PVC/PV 的 RC:

SAME_BASE/kubernetes-nfs-server

它在我的 TODO 列表中,用于探索分布式文件系统,例如 GluterFS。对于 K8S 部署,您选择的文件系统就是您的补救措施。

您还可以参与 K8S 社区中的可扩展性和存储 SIG 来帮助确定此用例的优先级。向 K8S 添加功能消除了集群解决方案在共享卷中处理节点分离的要求,并防止在集群应用程序和 PV 之间引入额外的故障点。

GITHUB kubernetes/社区

希望我们能在 2.0 之前看到 K8S OTB 解决方案。

(注意:必须更改 2 个 GITHUB 链接,因为我没有“10 信誉”)

【讨论】:

  • 感谢您的所有观点,提供信息,非常感谢您的帮助
猜你喜欢
  • 2021-01-26
  • 2019-08-07
  • 2021-01-22
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多