【问题标题】:How to make the Kubernetes volumes cloud agnostic?如何使 Kubernetes 卷与云无关?
【发布时间】:2022-10-24 20:22:50
【问题描述】:

目前,我的 Kubernetes 集群是通过 GKE 配置的。

我使用GCE Persistent Disks 来保存我的数据。

GCE 中,持久存储是通过GCE Persistent Disks 提供的。 Kubernetes 支持通过gcePersistentDisk 卷/供应器类型将它们添加到PodsPersistenVolumesStorageClasses

如果我想将集群从Google 转移到AzureAWS,该怎么办? 然后我必须在清单文件中的所有事件中分别将卷类型的值更改为azureFileawsElasticBlockStore

我希望CSI 驱动程序能够解决这个问题,不幸的是,他们还为每个提供商云提供商使用不同类型的卷,例如pd.csi.storage.gke.io 用于GCPdisk.csi.azure.com 用于Azure

是否有任何便捷的方法可以使 Kubernetes 卷与云无关?在 K8s 集群迁移之前,我不必对清单文件进行任何更改。

【问题讨论】:

  • 理想情况下,您只需创建一个PersistentVolumeClaim,每个提供者都有一个默认的StorageClass,因此您无需在声明中指定它......但听起来事情不是这样的,所以也许答案是采用某种模板系统,以尽量减少需要进行更改的地方的数量。
  • 您可以创建和管理使用 CEPH、GlusterFS 或 Portworks 等构建的自己的存储集群。这不会很容易创建和管理。

标签: kubernetes google-kubernetes-engine amazon-eks azure-aks


【解决方案1】:

您不能使用 CSI 驱动程序或 Kubernetes 中的本机 VolumeClaims 来获得与云无关的存储。这是因为这些 API 是配置存储的上游方式,每个云提供商必须与之集成以将它们转换为特定于云的 API(Google 的 PD,AWS 的 EBS ......)

除非您拥有可以通过 NFS 驱动程序或上面管理的工具中的特定驱动程序访问的自我管理存储。尽管如此,自我管理存储解决方案仍将基于云提供商的特定卷。所以你只是要把问题转移到另一个地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2021-11-18
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多