我在Google云上有一个Kubernetes集群。我不小心删除了其中运行了几个Pod的命名空间。幸运的是,pod仍在运行,但是名称空间处于终止状态。
是否有办法将其恢复为活动状态?如果没有,那么在此命名空间中运行的吊舱的命运将如何?
谢谢
答案 0 :(得分:1)
一些有关使用各种工具备份和还原Kubernetes cluster
的有趣文章:
https://medium.com/@pmvk/kubernetes-backups-and-recovery-efc33180e89d
https://www.revolgy.com/blog/kubernetes-in-production-snapshotting-cluster-state
我想它们可能会有用,而不是将来而不是在您当前的情况下。如果您没有任何备份,那么您将无能为力。
请注意,在所有这些文章中,他们使用namespace deletion
模拟灾难情况,因此您可以想象这种操作的后果是什么。但是结果可能不会立即显示,您可能会看到Pod运行了一段时间,但最终命名空间删除 删除了给定命名空间中的所有kubernetes集群资源,包括{{1} }或LoadBalancers
。可能需要一些时间。某些资源可能仍被另一资源使用(例如,通过运行PersistentVolumes
来PersistentVolume
),因此可能无法删除某些资源。
您可以尝试运行this脚本以转储所有仍可用于yaml文件的资源,但是可能需要进行一些修改,因为您将无法再列出属于已删除名称空间的对象。您可能需要添加Pod
标志以列出它们。
您也可以尝试转储仍然手动可用的任何资源。如果仍然可以看到--all-namespaces
,Pods
等资源,并且可以在它们上运行Deployments
,则可以尝试将其定义保存到yaml文件中:
kubectl get
一旦备份了资源,您应该能够更轻松地重新创建集群。