Kubernetes如何跟踪状态集中哪个云磁盘连接到哪个Pod?

Kubernetes如何跟踪状态集中哪个云磁盘连接到哪个Pod?,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我在GKE上创建了一个StatefulSet,它提供了一组连接到属于该StatefulSet的pod的GCE磁盘。假设我将StatefulSet扩展为0:组成的pod被销毁,磁盘被释放。当我向上扩展时,磁盘会重新连接并安装在正确的吊舱中 我的问题是: Kubernetes如何跟踪要重新连接到哪个状态集pod的GCE磁盘 假设我想从快照恢复StatefulSet Pod的PV。如何让Kubernetes使用从快照创建的磁盘,而不是旧磁盘 当您将StatefulSet扩展到0个副本时,POD将被销

我在GKE上创建了一个StatefulSet,它提供了一组连接到属于该StatefulSet的pod的GCE磁盘。假设我将StatefulSet扩展为0:组成的pod被销毁,磁盘被释放。当我向上扩展时,磁盘会重新连接并安装在正确的吊舱中

我的问题是:

  • Kubernetes如何跟踪要重新连接到哪个状态集pod的GCE磁盘
  • 假设我想从快照恢复StatefulSet Pod的PV。如何让Kubernetes使用从快照创建的磁盘,而不是旧磁盘

当您将StatefulSet扩展到0个副本时,POD将被销毁,但持久卷和持久卷声明将被保留。与GCE磁盘的关联写入PersistentVolume对象中。当您再次放大RS时,POD被分配到正确的PV,从而从GCE获得相同的体积

为了在快照还原后更改永久卷-GCE磁盘关联,您需要编辑PV对象。

开始使用Kubernetes的快照/还原功能解决此问题,并将其作为alpha功能引入。
这提供了标准化的API设计(CRD),并添加了对的PV快照/恢复支持

这不再是GKE特有的

请参阅功能请求“”及其关联项

statefulSet方面处于测试级别,但将来将是:

以下是当前阶段的非目标,但将在稍后阶段考虑

目标5:提供更高级别的管理,例如备份和恢复pod和状态集,以及创建一致的快照组


请参阅:“

谢谢。第二部分我已经弄明白了:在我的例子中,因为我在GCE上,所以我能够编辑
spec.gcePersistentDisk.pdName
,并用我还原的图像的名称替换它。但我的第一个问题仍然存在(目前这主要是一个好奇的问题)——StatefulSet控制器如何识别哪个序号需要哪个PV?我认为,根据设计,StatefulSet通过名称将PV和POD关联起来。正如您所知,StatefulSet中的pod的名称比replicset生成的名称随机性更小,例如mypod-0、mypod-1等等。我猜StatefulSet实现只是简单地将这些pod名称映射为同源的PVC,比如mypod-0与mypvc-0关联,所以对了,PVC也是有序的。是的,这是有道理的。谢谢。我手动编辑PV以关闭底层云磁盘,您是否看到了任何问题?只要您确定磁盘内容正确,就没有问题。事实上,PV是由系统管理员手动管理的,自动创建它们是GCE的一个特性。你完全可以编辑它们