Как удалить связь в Жужу после уничтожения одного из связанных сервисов?

Я пробую Джуджу и во время игры создал сервис Django, а затем Mongodb. Я связал их, а затем уничтожил mongodb. Теперь мой сервис Django находится в состоянии ошибки: agent-state-info: 'hook fail: "connection-broken" ". Я пытался разрушить связь с juju destroy-relation python-django mongodb, но безрезультатно. Mongodb по-прежнему появляется в статусе джуджу, но в состоянии «умирает», прошло несколько часов с тех пор, как я его уничтожил. Я не проделал никакой реальной работы с этим сервисом, поэтому могу уничтожить его и начать все заново, но во время обучения я хотел бы узнать, есть ли более чистый способ решения этой ситуации.

2
задан 13.04.2020, 16:54

1 ответ

Во-первых, досадно «задним числом» немного. Перед удалением сервисов всегда полезно удалить отношения: https://jujucharms.com/docs/stable/charms-destroy

Как только машина находится в состоянии ошибки, Juju не будет обрабатывать какие-либо хуки для этого сервиса - даже те, которые его уничтожат. Это для защиты от возможной потери данных. Однако существует механизм для возврата машины в адаптивное состояние:

juju resolved <machine identifier>

, например

juju resolved mongodb/0

Это позволит снова включить выполнение ловушек для этой машины / службы. Тогда будет возможно:

juju destroy-relation mongodb django
juju destroy-service mongodb
juju destroy-service django
2
ответ дан 13.04.2020, 16:54
  • 1
    большой, только путем выполнения juju resolved python-django/0 состояние теперь совершенно хорошо для этого сервиса, и mongodb сервис исчез! Я не сделал бы этого на среде напоминания, но я хотел попытаться видеть то, что произойдет, так как документ не упоминает ситуацию:) – Jehanzeb.Malik 13.04.2020, 16:55
  • 2
    обычно можно было бы использовать амулет ssh < identifier> соединяться с машинами, которые были в состоянии ошибки и фиксируют то, что проблема. это кажется нечетным, что mongodb исчез, чтобы быть честным – Anders Ekdahl 13.04.2020, 16:55

Теги

Похожие вопросы