Случайно удаленное пространство имен Kubernetes - PullRequest
0 голосов
/ 14 октября 2019

У меня есть кластер Kubernetes в облаке Google. Я случайно удалил пространство имен, в котором было запущено несколько модулей. К счастью, модули все еще работают, но пространство имен находится в состоянии завершения.

Есть ли способ вернуть его в активное состояние? Если нет, то какова будет судьба моих модулей, работающих в этом пространстве имен?

Спасибо

1 Ответ

1 голос
/ 14 октября 2019

Несколько интересных статей о резервном копировании и восстановлении Kubernetes cluster с использованием различных инструментов:

https://medium.com/@pmvk/kubernetes-backups-and-recovery-efc33180e89d

https://blog.kubernauts.io/backup-and-restore-of-kubernetes-applications-using-heptios-velero-with-restic-and-rook-ceph-as-2e8df15b1487

https://www.digitalocean.com/community/tutorials/how-to-back-up-and-restore-a-kubernetes-cluster-on-digitalocean-using-heptio-ark

https://www.revolgy.com/blog/kubernetes-in-production-snapshotting-cluster-state

Я думаю, они могут быть полезны скорее в будущем, чем в вашей текущей ситуации. Если у вас нет резервной копии, к сожалению, вы мало что можете сделать.

Обратите внимание, что во всех этих статьях используется от namespace deletion до симуляции сценария бедствия , чтобы вы моглиМожно представить, каковы последствия такой операции. Однако результаты могут отображаться не сразу, и вы можете увидеть, что ваши модули работают в течение некоторого времени, но в итоге удаление пространства имен удаляет все ресурсы кластера kubernetes в данном пространстве имен , включая LoadBalancers или PersistentVolumes. Это может занять некоторое время. Некоторый ресурс не может быть удален, потому что он все еще используется другим ресурсом (например, PersistentVolume с помощью Pod).

Вы можете попробовать запустить скрипт , чтобы сбросить все ваши ресурсыкоторые все еще доступны для файлов yaml, однако могут потребоваться некоторые изменения, поскольку вы больше не сможете перечислять объекты, принадлежащие удаленному пространству имен. Вам может понадобиться добавить флаг --all-namespaces, чтобы перечислить их.

Вы также можете попробовать сбросить любой ресурс, который все еще доступен вручную. Если вы по-прежнему видите некоторые ресурсы, такие как Pods, Deployments и т. Д., И можете запускать на них kubectl get, вы можете попытаться сохранить их определение в файле yaml:

kubectl get deployment nginx-deployment -o yaml > deployment_backup.yaml

Как только вырезервное копирование ваших ресурсов позволит вам легче воссоздать кластер.

...