Как убирать машины в умирающем состоянии?

Я экспериментировал с тестовым брелоком на Juju на AWS и сумел перевести мой сервис в полностью зависшее состояние. Служба juju возвращает следующее.

environment: amazon
machines:
  "0":
    agent-state: started
    agent-version: 1.16.5
    dns-name: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    instance-id: i-7c2f4c52
    instance-state: running
    series: precise
    hardware: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740M root-disk=8192M
  "5":
    agent-state: down
    agent-state-info: (started)
    agent-version: 1.16.5
    instance-id: i-9cb9cbb2
    instance-state: missing
    series: precise
    hardware: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740M root-disk=8192M
services:
  metest:
    charm: local:precise/metest-0
    exposed: false
    life: dying
    relations:
      cluster:
      - metest
    units:
      metest/0:
        agent-state: down
        agent-state-info: (started)
        agent-version: 1.16.5
        life: dying
        machine: "5"
        open-ports:
        - 80/tcp
        public-address: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

(Я удалил имена DNS на всякий случай!). Идентификатор экземпляра для машины 5 был прерван в соответствии с консолью управления AWS. Ни одна из команд "destroy-unit metest / 0", "destroy-service metest" и "destroy-machine 5" не устраняет проблему, и я не могу повторно развернуть службу с ней в этом состоянии. Решения джуджу, похоже, тоже не действуют.

Поискивая проблему, единственное решение, которое я могу найти, - это полностью уничтожить мою среду, что не является хорошим вариантом. Можно ли как-то решить проблему иначе? Каков общий метод отладки такого рода проблем?

Основная причина проблемы: мы используем Chef для большей части нашей оркестровки и обнаружили, что из-за случайного сбоя между Chef и AWS API остаются осиротевшие экземпляры. Поскольку все экземпляры, которые мы запускаем от Chef, помечены именем, а эти осиротевшие экземпляры не названы, во избежание ненужной траты денег на Amazon мы добавили код в наши плагины для ножей, чтобы завершить безымянные экземпляры. Я уверен, что вы можете видеть, куда это идет ...

Есть ли способ очистить машины, когда они находятся в этом состоянии (--force не помогает) - и я также хотел бы знаете, есть ли планы разрешить именование экземпляров, чтобы их можно было идентифицировать в консоли управления EC2 (что-то вроде juju-- было бы идеально)?

Вещи, которые я пробовал:

  • destroy-machine --force, кажется, не убирает вещи. Я не получаю сообщение об ошибке, но похоже, что в статусе ничего не изменилось.
3
задан 12 February 2014 в 18:52

2 ответа

Вы можете попробовать:

juju destroy-machine --force 5

Опция --force для destroy-machine доступна с 1.16.5 и должна удалить зависшую машину и все устройства на ней. Тогда вы сможете повторно развернуть свой сервис, но если он говорит, что «сервис уже существует», просто разверните его под другим именем.

Если ничего не помогает, всегда можно выбрать juju destroy-environment -e <name>. Я не уверен, поддерживал ли он также --force в 1.16.5.

0
ответ дан 12 February 2014 в 18:52

У меня была похожая ситуация, и я выпустил « Джую решен » (или в случае службы вы можете дать «Джую решен». Это решило проблему.

Пожалуйста, взгляд на раздел «Предостережения» «Удаление в Жужу»

0
ответ дан 12 February 2014 в 18:52

Другие вопросы по тегам:

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