kubernetes 如何更改现有持久卷的存储类别?

dpiehjr4  于 12个月前  发布在  Kubernetes
关注(0)|答案(3)|浏览(121)

我在Google Kubernetes Engine中运行的Kubernetes中有一堆标准PV绑定到PVC。我想将它们的存储类更改为SSD。如何实现?

g6baxovj

g6baxovj1#

不可以,无法更改现有PVC的存储类。您必须使用所需的存储类创建一个新PVC,然后删除现有PVC。

h4cxqtbf

h4cxqtbf2#

如果我没有理解错的话,你想改变你的PV的类型,问题不是“如果”,而是“在哪里”。
PVC、PV和PVC Class之间的关系非常简单。
PVC只是对特定类型(在storageClassName下指定)和大小(在PV中列出)的存储的请求。

kind: PersistentVolumeClaim
spec:
...
  resources:
    requests:
      storage: 8Gi
  storageClassName: slow

字符串
PV在spec:中有storageClassName

kind: PersistentVolume
...
spec:
  capacity:
    storage: 10Gi
...
  storageClassName: slow


storageClasstype

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: slow
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard
  fstype: ext4
  replication-type: none

# type: pd-standard or pd-ssd. Default: pd-standard


这是你一直在找的信息吗

von4xj4u

von4xj4u3#

如前所述,您不能只更改存储类名称,但可以使用相同的内容和(至关重要的是)相同的驱动器名称重新配置新驱动器。有两种方法:
1.创建一个全新的deployment/statefulset,然后将其标记为蓝色/绿色或重新指向流量。根据您当前的基础设施,这可能会导致中断。特别是如果您需要在迁移过程中保持数据同步,这可能会非常痛苦。
1.重新创建现有的PV/PVC。这在某些方面更整洁,更容易,但它也肯定会导致停电。
关于2,高级步骤是:

  • 备份现有的GKE磁盘
  • 停止pod并从GKE磁盘中分离PV/PVC(这是中断开始的地方)
  • 创建正确大小和类型的新GKE磁盘
  • 将数据从旧磁盘复制到新磁盘
  • 为新的GKE磁盘配置一个PV + PVC清单并应用它-你应该看到GKE磁盘成功地连接到PV & PVC。(这是中断结束的地方)
  • 再次启动pod,并观察您的应用程序在新的存储类和大小中使用旧数据。
    如果您正在使用动态卷模板的有状态集,则需要删除整个有状态集并重新应用它,因为有状态集规范的动态卷模板部分是不可变的。

你可以在这里找到更详细的说明:https://blog.srcinnovations.com.au/2023/11/23/changing-kubernetes-pvc-storage-class-and-downsizing-them-at-the-same-time/

相关问题