我在GKE上创建了一个StatefulSet,它配置了一堆附加到属于该StatefulSet的pod的GCE磁盘。假设我将StatefulSet缩放为0:构成pod被销毁并且磁盘被释放。当我缩放时,磁盘将重新连接并安装在正确的pod中。
我的问题是:
答案 0 :(得分:4)
当您将StatefulSet扩展为0个副本时,pod会被销毁,但会保留持久卷和持久卷声明。与GCE磁盘的关联写在PersistentVolume对象中。再次缩放RS时,将pod分配给正确的PV,从而从GCE获得相同的音量。
为了在快照恢复后更改持久卷 - GCE磁盘关联,您需要编辑PV对象。
答案 1 :(得分:1)
Kubernetes 1.12开始使用Kubernetes的 Snapshot / restore (快照/还原)功能和CSI (Container Storage Interface)(具有Alpha功能)引入了更广泛的解决方案。
这提供了标准化的API设计(CRD),并为CSI volume drivers添加了PV快照/恢复支持。
这不再特定于GKE。
请参阅功能请求“ Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller)”及其关联的CSI snapshot design。
statefulSet方面在beta级别为not yet fully addressed in this,但将来会出现:
以下是当前阶段的非目标,但将在以后的阶段中考虑。
目标5:提供更高级别的管理,例如备份和还原pod和statefulSet,以及创建一致的快照组。
请参见PR for the documentation:“ Volume Snapshot and Restore Volume from Snapshot Support ”