Хорошей практикой является всегда запускать Pod как Deployment с specs.replicas: 1
.Это очень просто, так как Deployment specs.template
буквально принимает ваш Pod specs
, и довольно удобно, поскольку развертывание гарантирует, что ваш Pod всегда работает.
Тогда, если у вас будет только 1 копияВаш Pod, вы можете просто использовать PersistentVolumeClaim и прикрепить его к модулю как том, в этом случае вам не нужен StatefulSet.Ваши данные будут храниться в PVC, и всякий раз, когда ваш Pod перемещается по узлам по любой причине, он автоматически присоединяет том без потери данных.
Теперь, если для вас уже слишком поздно, и ваш Pod нетЕсли у вас нет тома, указывающего на PVC, вы все равно можете подготовиться к его изменению, применив подход Deployment / PVC, и вручную скопировать данные из текущего модуля:
kubectl cp theNamespace/thePod:/the/path /somewhere/on/your/local/computer
Перед копированием обратно вновый модуль:
kubectl cp /somewhere/on/your/local/computer theNamespace/theNewPod:/the/path
На этот раз, просто убедитесь, что /the/path
(для повторного использования приведенного выше примера) фактически является томом, сопоставленным с PVC, поэтому вам не придется делать это вручную снова!