前言
之前的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 副本的索引。此示例使用的是0
和1
。
注意,刪除pvc時,最好將pv也刪除,避免發生未知情況。
如碰到下圖情況,表示pv有問題,請刪除重建。
ref.
0 意見:
張貼留言