Pages - Menu

2022年3月28日 星期一

[GKE] pvc還原

前言

之前的Gitlab建在GKE的公開叢集上,
雖然有限定IP訪問,一直要改到私有叢集上,
但一直沒時間動,現在終於有空弄了,首先要解決的是資料還原的問題。

正文

首先在GCE上面複製一個磁碟,
可以先從GKE上面的pod找到當初建立的pvc名稱,
再根據這個名稱去找。




再來就建立pv 跟 pvc了。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: test-pv
  namespace: default
spec:
  # persistentVolumeReclaimPolicy: Delete
  storageClassName: "standard"
  capacity:
    storage: 300G
  accessModes:
    - ReadWriteOnce
  claimRef:
    namespace: default
    name: test-upload
  gcePersistentDisk:
    pdName: test-upload
    fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-upload
  namespace: default
spec:
  storageClassName: "standard"
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 300G

pv的 gcePersistentDisk ,是剛剛複製的硬碟名稱。

將裡面的參數改一改,
要建立的 name,namespace,storage, claimRef ,
結束。

deployment使用正常方式直接掛載即可。

  template:
    metadata:
      creationTimestamp: null
      labels:
        app: video-admin
        version: v1
    spec:
      containers:
      - name: video
        ...
        volumeMounts:
        - mountPath: /upload
          name: source
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
      - name: source
        persistentVolumeClaim:
          claimName: test-upload

如果是statefuleSet的話,
pv的名稱需要改成 statefulSet的命名規則。
statefulSet不會用到pvc。

VC_TEMPLATE_NAME-STATEFULSET_NAME-REPLICA_INDEX
  • VC_TEMPLATE_NAME:新 PersistentVolumeClaim 模板的名稱。
  • STATEFULSET_NAME:新 StatefulSet 的名稱。
  • REPLICA_INDEX:StatefulSet 副本的索引。此示例使用的是 01

注意,刪除pvc時,最好將pv也刪除,避免發生未知情況。

如碰到下圖情況,表示pv有問題,請刪除重建。



ref.

沒有留言:

張貼留言