Каков рекомендуемый способ переместить одиночные стручки в другой узел перед сливом?Такой, что kubectl сток узел1 --force не удаляет модуль - PullRequest
0 голосов
/ 29 ноября 2018

Не могу найти, как это сделать в документации.После опустошения узла с --ignore-daemonsets --force модулями, не управляемыми ReplicationController, ReplicaSet, Job, DaemonSet или StatefulSet теряются.Как я должен перемещать такие модули перед выполнением команды стока?Я хочу сохранить локальные данные на этих стручках.

1 Ответ

0 голосов
/ 30 ноября 2018

Хорошей практикой является всегда запускать 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, поэтому вам не придется делать это вручную снова!

...