Amazon-Ebs
有沒有辦法將現有捲(我剛剛從快照恢復的捲)附加到 PVC?
我有一個使用 helm 圖表創建的 mongodb-replicaset。該圖表根據我提供的 StorageClass 創建 PVC。我使用對捲進行快照的 cron 作業拾取的標籤來註釋我的捲。
如果我需要從備份快照恢復,比如在另一個集群中,我知道我可以從快照創建一個卷,但我不知道如何將該卷轉換為 StatefulSet 期望的 PVC 並可以重新啟動從。
我了解到 a
StatefulSet
將尋找具有特定名稱的 PVC。我從https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations的文件中發現了這一點:給定 Pod 的儲存必須由 PersistentVolume Provisioner 基於請求的儲存類進行配置,或者由管理員預先配置。
通過實驗,我發現預配置只是意味著創建
PersistentVolumeClaim
具有預期名稱的 s。我能夠將 EBS 快照恢復到卷,創建一個
PersistentVolume
直接引用恢復的捲 ID,然後PersistentVolumeClaim
使用正確名稱創建一個。因此,例如,這個 mongo 安裝需要名為 like 的捲datadir-pii-mongodb-replicaset-[0-2]
,並且在將 EBS 快照恢復到卷之後,我使用以下 yaml:apiVersion: v1 kind: PersistentVolume metadata: labels: failure-domain.beta.kubernetes.io/region: us-west-2 failure-domain.beta.kubernetes.io/zone: us-west-2a name: pv-a namespace: larksettings-pii spec: accessModes: - ReadWriteOnce capacity: storage: 320Gi awsElasticBlockStore: fsType: xfs volumeID: aws://us-west-2a/vol-xxxxxxxxxxxxx storageClassName: mongo-xfs --- apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app: mongodb-replicaset release: pii name: datadir-pii-mongodb-replicaset-0 namespace: larksettings-pii spec: accessModes: - ReadWriteOnce resources: requests: storage: 320Gi storageClassName: mongo-xfs volumeName: pv-a
小心可用區。由於我跨越了 3 個區域,因此我需要將三個快照恢復到單獨的區域並確保
PersistentVolume
規範反映了這一點。