Kubernetes 将计算引擎磁盘作为永久卷添加到容器引擎

Kubernetes 将计算引擎磁盘作为永久卷添加到容器引擎,kubernetes,google-cloud-platform,google-compute-engine,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Compute Engine,Google Kubernetes Engine,我有一个PersistentVolumeClaim,如下所示: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-config-storage namespace: gitlab annotations: volume.beta.kubernetes.io/storage-class: fast spec: accessModes: - ReadWriteMany resourc

我有一个
PersistentVolumeClaim
,如下所示:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-config-storage
  namespace: gitlab
  annotations:
    volume.beta.kubernetes.io/storage-class: fast
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

这在Google Compute Engine中创建了一个磁盘,然后我删除了声明并重新应用了它,但这创建了一个新的磁盘,我想将原始磁盘附加到我的声明中,因为其中包含我已经创建的数据,有没有办法强制GKE使用特定的磁盘?

使用持久卷声明,您要求GKE使用持久磁盘,然后始终使用相同的卷

然而,通过删除索赔,您实际上已经销毁了它

如果您想继续使用,请永远不要删除该声明

您可以在多个POD的生命周期内附加声明,磁盘将保持不变。一旦删除索赔,它就会消失


查看更多信息

您可以通过首先创建PersistantVolume将GCE磁盘重新连接到PersistantVolumeClaim。创建yaml文件并设置适当的值,例如:

---
apiVersion: v1
kind: PersistentVolume
  name: pvc-gitlab-config-storage
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 25Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: gitlab-config-storage
    namespace: gitlab
  gcePersistentDisk:
    pdName: <name_of_the_gke_disk>
  persistentVolumeReclaimPolicy: Delete
  storageClassName: fast
---
版本:v1
种类:PersistentVolume
名称:pvc gitlab配置存储
规格:
访问模式:
-读写
容量:
储存量:25Gi
索赔参考:
版本:v1
种类:PersistentVolumeClaim
名称:gitlab配置存储
名称空间:gitlab
gcePersistentDisk:
pdName:
PersistentVolumeClaIncolicy:删除
storageClassName:fast

使用
kubectl apply-f filename.yaml创建此文件,然后使用与spec和claimRef匹配的值重新创建PersistantVolumeClaim。PVC应该找到匹配的PV并绑定到它和现有的GCE磁盘。

我刚刚尝试了“kubectl edit PV PVNAME”并编辑了“gcePersistentDisk.Name”,但我收到了一条消息“错误:编辑已取消,未保存任何有效更改”。下面的答案是否解决了您的问题?