我正在使用Google Container Engine爲MongoDB副本集(3個副本窗格)運行StatefulSet。我可以在Kubernetes的volumeClaimTemplate中使用現有的GCE持久磁盤Statefulset
這適用於永久存儲的動態配置 - 這是在創建有狀態集時爲每個pod配置的新存儲。
但是,如果我重新啓動StatefulSet,似乎我無法重新綁定舊的持久卷,因爲新的存儲將再次置備。這意味着數據丟失了。理想情況下,持久性存儲應該在刪除Kubernetes集羣本身後繼續存在,數據保留並準備在新集羣中重新使用。
是否有辦法創建GCE永久磁盤並在StatefulSet的持久卷聲明中使用它們?
[更新2017年9月20]
找到了答案: 這是溶液(信貸@RahulKrishnan RA)
創建存儲類,指定基礎磁盤類型和zone
創建一個PersistentVolume,指定上面的存儲類創建 ,並引用永久磁盤w ish來安裝
- 創建一個PersistentVolumeClaim。命名PVC
<pvc template name>-<statefulset name>-<ordinal number>
非常重要。 (正確的名稱是 技巧!)指定volumeName作爲上面創建的PV,並存儲 類。 - 創建儘可能多的PV和PVC,因爲您擁有 正確名稱的複製品。
- 使用PVC模板創建statefulSet。
從現有持久磁盤如何提供此規定,而不指定磁盤名稱?看起來它仍然會動態配置? – conundrum
您是否在尋找手動連接PV?這一個是針對statefulset應用的動態配置。有關手動設置,請參閱 https://github.com/rahulkrishnanfs/percona-xtradb-statefulset-cluster-k8s/blob/master/percona.yml –
我遵循percona.yaml的Github鏈接。這似乎是PVC中的簡單動態配置。你能解釋一下這個PVC如何引用和使用現有的PD磁盤嗎? – conundrum