Como faço para limpar máquinas em estado de morte?

2

Eu estava fazendo algumas experiências com um encanto de teste no Juju na AWS e consegui colocar meu serviço em um estado completamente suspenso. serviço de juju retorna o seguinte.

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

(eu removi os nomes DNS apenas no caso!). O ID da instância da máquina 5 foi finalizado de acordo com o console de gerenciamento da AWS. Nenhum de "destroy-unit metest / 0", "destroy-service metest" e "destroy-machine 5" remove o problema, e não consigo reimplantar o serviço com ele nesse estado. a resolução de juju parece não ter efeito também.

Pesquisando o problema, a única solução que posso encontrar é apagar completamente o meu ambiente - o que não é uma ótima opção. Existe alguma maneira de resolver o problema de outra forma? Qual é o método geral para depurar esse tipo de problema?

A causa principal do problema: usamos o Chef para a maioria de nossa orquestração e descobrimos que falhas ocasionais entre o Chef e a API da AWS deixam instâncias órfãs ao redor. Como todas as instâncias que lançamos do Chef são marcadas com um nome, e essas instâncias órfãs são sem nome, para evitar desnecessariamente o dinheiro da Amazon, adicionamos código aos nossos plugins de faca para encerrar instâncias não nomeadas. Tenho certeza que você pode ver para onde isso está indo ...

Existe alguma maneira de limpar as máquinas uma vez que elas estão neste estado (--force não ajuda) - e eu também gostaria de saber se há algum plano para permitir que as instâncias sejam nomeadas para que elas sejam identificáveis o console de gerenciamento EC2 (algo como juju-- seria o ideal)?

Coisas que tentei:

  • destroy-machine --force não parece limpar as coisas. Eu não recebo um erro, mas parece que nada mudou no status.
por Mike Evans 11.02.2014 / 19:37

2 respostas

3

Você pode tentar:

juju destroy-machine --force 5

A opção --force de destroy-machine está disponível desde 1.16.5 e deve remover a máquina suspensa e todas as unidades nela. Então você deve ser capaz de reimplantar seu serviço, mas se ele diz que "o serviço já existe", basta implantá-lo com um nome diferente.

Se tudo mais falhar, juju destroy-environment -e <name> é sempre uma opção. Não tenho certeza se ele suportou --force também em 1.16.5.

    
por dimitern 12.02.2014 / 01:16
0

Eu tive um tipo semelhante de situação e enviei " juju resolvido " (ou no caso de serviço, você pode dar "juju resolved". Isso resolveu o problema.

Por favor, dê uma olhada na seção "Advertências" do "Remoção dentro do Juju"

    
por Tahir Rauf 16.11.2014 / 03:34