Хорошо, позвольте мне ответить на свой вопрос здесь.Я думаю, что Amit Kumar Gupta
подошел ближе всего к тому, что, по моему мнению, здесь происходит.
Поскольку я использую Deployment и мой PVC в ReadWriteOnce
, я в основном застрял с одним модулем, на котором запущен jenkins, на одномузел.
weibelds
ответ заставил меня понять, что я задавал вопросы о концепции, которую Kubernetes использует по умолчанию.Если мой модуль выходит из строя (в моем случае я специально отключаю узел, выполняя принудительное отключение питания для имитации сбоя), кластер (контроллер?) Обнаружит это и создаст новый модуль на другом узле.
Пока все в порядке, но потом я заметил, что мой новый модуль застрял в состоянии ContainerCreating
.
Запуск describe
на моем новом модуле (тот, что в состоянии ContainerCreating
) показалthis
Warning FailedAttachVolume 16m attachdetach-controller Multi-Attach error for volume "pvc-cb772fdb-492b-4ef5-a63e-4e483b8798fd" Volume is already used by pod(s) jenkins-deployment-6ddd796846-dgpnm
Warning FailedMount 70s (x7 over 14m) kubelet, cc-pool-bg6u Unable to mount volumes for pod "jenkins-deployment-6ddd796846-wjbkl_default(93747d74-b208-421c-afa4-8d467e717649)": timeout expired waiting for volumes to attach or mount for pod "default"/"jenkins-deployment-6ddd796846-wjbkl". list of unmounted volumes=[jenkins-home]. list of unattached volumes=[jenkins-home default-token-wd6p7]
Тогда это начало поражать меня, это имеет смысл.Это жалко, но в этом есть смысл.
Так как я сделал принудительное отключение узла, PV прекратил работу с ним.Таким образом, теперь контроллер пытается запустить новый модуль на новом узле, но он не может передать PV, поскольку тот, что был на предыдущем модуле, стал недоступен.
Когда я читаю больше об этом, я читал, что только DigitalOceanподдерживает ReadWriteOnce
, что теперь заставляет меня задуматься, как, черт возьми, я могу добиться простого перехода на другой ресурс для приложения с сохранением состояния на кластере Kubernetes в Digital Ocean, который состоит всего из пары простых капель?