将计算引擎磁盘作为持久卷添加到Container Engine

时间:2017-04-10 07:12:17

标签: 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
  resources:
    requests:
      storage: 1Gi

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

2 个答案:

答案 0 :(得分:2)

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

但是,通过删除声明,您实际上已将其销毁。

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

您可以在其生命周期内将声明附加到多个pod,并且磁盘将保持不变。一旦删除声明,它就会消失。

查看here了解更多信息

答案 1 :(得分:1)

首先创建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

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