Kubernetes 在排放之前,建议使用什么方法将单个吊舱移动到不同的节点?这样kubectl drain node1——force不会删除pod

Kubernetes 在排放之前,建议使用什么方法将单个吊舱移动到不同的节点?这样kubectl drain node1——force不会删除pod,kubernetes,kubectl,Kubernetes,Kubectl,在文档中找不到如何执行此操作。使用--忽略守护程序--force卸载节点后,ReplicationController、ReplicateSet、Job、守护程序集或StatefulSet未管理的POD将丢失。在发出drain命令之前,我应该如何移动这些POD?我想保存这些豆荚上的本地数据 一个好的做法是始终使用specs.replicas:1启动Pod。这非常简单,因为部署规范。模板可以直接接收Pod规范,而且非常方便,因为部署将确保Pod始终运行 然后,假设您只有一个Pod副本,您可以简单地

在文档中找不到如何执行此操作。使用
--忽略守护程序--force
卸载节点后,ReplicationController、ReplicateSet、Job、守护程序集或StatefulSet未管理的POD将丢失。在发出drain命令之前,我应该如何移动这些POD?我想保存这些豆荚上的本地数据

一个好的做法是始终使用
specs.replicas:1
启动Pod。这非常简单,因为部署
规范。模板
可以直接接收Pod
规范
,而且非常方便,因为部署将确保Pod始终运行

然后,假设您只有一个Pod副本,您可以简单地使用PersistentVolumeClaim并将其作为卷附加到Pod,在这种情况下,您不需要StatefulSet。您的数据将存储在PVC中,无论何时您的Pod由于任何原因在节点上移动,它都会自动重新连接卷,而不会丢失任何数据

现在,如果对您来说为时已晚,并且您的Pod没有指向PVC的卷,您仍然可以通过实施部署/PVC方法来准备更改该卷,并手动将数据从当前Pod中复制出来:

kubectl cp theNamespace/thePod:/the/path /somewhere/on/your/local/computer
将其复制回新pod之前:

kubectl cp /somewhere/on/your/local/computer theNamespace/theNewPod:/the/path

这一次,只需确保/path(重复使用上面的示例)实际上是映射到PVC的卷,这样您就不必再次手动执行该操作了

据我所知,如果不逐出一个豆荚,就无法排空节点,所以这不能用您的方式完成。也许你应该考虑保持音量来避免数据丢失?